2013-06-13 7 views
6

मेरे पास एक बड़ी तालिका है, जिसमें कई रेखाएं (50-200) और कॉलम (30) हैं। तो कुल मिलाकर मेरे पास कम से कम 1500 कोशिकाएं हैं। मैं जानना चाहता हूं कि निम्नलिखित में से कौन से निर्देश तेजी से हैं और क्यों?jQuery: जो इस मामले में तेज है (.find) बनाम (.filter)

//assuming we have some predefined variable 
var table = $('#myTable'); 
var allCells = table.find('td'); 

एक चयनित सेल एक वर्ग selected

selectedCells = table.find('td.selected'); 

बनाम

selectedCells = allCells.filter('.selected'); 

या वहां एक बेहतर, देशी जावास्क्रिप्ट तरीका है (प्रदर्शन और पठनीयता की अवधि में) का चयन किया पाते हैं करने के लिए है, तो कोशिकाओं पर विचार करने के लिए 1500 कोशिकाएं लूप के माध्यम से हैं?

+5

इसे स्वयं आज़माएं: http://jsperf.com/। –

+0

@ फ़ेलिक्सक्लिंग मुझे नहीं पता कि इसका उपयोग कैसे किया जाए, क्या आप मेरे लिए ऐसा कर सकते हैं? –

+0

एक मौजूदा परीक्षण को देखें, उदा। http://jsperf.com/jquery-selector-vs-standard-selector। –

उत्तर

10

find() यहां तेजी से बढ़ेगा क्योंकि आपकी filter() विधि find() पर निर्भर करती है। अपने कोड से:

var allCells = table.find('td'); 

selectedCells = allCells.filter('.selected'); 

table.find('td.selected');selected वर्ग के साथ ही td तत्वों खींचती है।

table.find('td').filter('.selected') तो सभीtd तत्वों खींचती selected वर्ग के साथ ही तत्वों फिल्टर।

+0

' .filter' 'find' पर भरोसा क्यों करता है? –

+0

@ फ़ेलिक्सक्लिंग यह नहीं करता है। फ़िल्टर पूर्व-चयनित वस्तुओं के सेट पर निर्भर करता है। इस मामले में, उन वस्तुओं को 'find()' का उपयोग करके चुना गया है। "मिलान किए गए तत्वों के सेट को उन लोगों के लिए कम करें जो चयनकर्ता से मेल खाते हैं या फ़ंक्शन के परीक्षण को पास करते हैं।" http://api.jquery.com/filter/ –

+0

ठीक है, तो आपका मतलब केवल इस संदर्भ में है कि ओपी '.filter' से पहले' .find' कर रहा है (हालांकि इसे आसानी से गलत समझा जा सकता है, मुझे लगता है कि मुझे याद आया " "में" आपकी 'फ़िल्टर()' विधि ")। मैं धारणा के तहत था कि ओपी * हमेशा * var varCells = table.find ('td') निष्पादित करेगा; वैसे भी, इसलिए '.filter' का उपयोग करके कोशिकाओं के लिए फिर से खोज के लिए बेहतर होगा' .find' । किंतु कौन जानता है :) –

संबंधित मुद्दे