2012-04-03 12 views
7

क्वेरी चयनकर्ता का jQuery समतुल्य क्या है? ,क्वेरी के jQuery समकक्ष चयनकर्ता

$(selectorString)[0] 
ऊपर अभिव्यक्ति के साथ

jQuery पहला मैच पाने के बाद बंद करने के लिए बहुत चालाक है: एक ही रास्ता मैं अब तक मिल गया है का चयन करने के सभी तो पहले चयन लेने है?

अपडेट: @Mutnowski ने eq() और पहले का उपयोग करने का सुझाव दिया, लेकिन jQuery दस्तावेज़ों को पढ़ने के बाद उन दो विधियों में एक ही कमी है: jQuery पहले सभी मैचों को प्राप्त करेगा, फिर केवल पहले तत्व को फ़िल्टर करें।

+0

ध्यान दें कि "eq" एक सीएसएस चयनकर्ता नहीं है लिख सकते हैं, यह एक jQuery कार्यान्वयन है। तो सबसे अच्छा प्रदर्शन करने के लिए बेहतर $ '(" td ") लिखें। Eq (2)' '$ (" td: eq (2) "के बजाय' – Killy

उत्तर

1

चाहते तो ऐसा लगता है कि jQuery में क्वेरी सिलेक्टर के बराबर नहीं है, या मैं एन अन्य पुस्तकालयों मैंने देखा है।

वर्कअराउंड सभी मिलान करने वाले तत्वों (क्वेरी सिलेक्टर के बराबर) का चयन करना है, फिर पहले को फ़िल्टर करें। यह [0] (एचटीएमएल नोड देता है) का उपयोग करके किया जा सकता है या जैसा कि @Mutnowski द्वारा eq (0) या पहले (एक jQuery ऑब्जेक्ट लौटा रहा है) द्वारा सुझाया गया है।

6

आप .eq (इंडेक्स) एक सूचकांक

$("td").eq(2) 
$("td:eq(2)") 

http://api.jquery.com/eq/

आप सबसे पहले सिर्फ पहली बार उपयोग करना चाहते हैं() प्राप्त करने के लिए

$("tr").first() 
$("tr:first") 

http://api.jquery.com/first/

+0

Thx। फिर भी मुझे ऐसा लगता है कि jQuery पहले सभी मैचों का चयन करता है, और उसके बाद ही फ़िल्टर लागू होता है। सही बात? – Christophe

+0

@ क्रिस्टोफ़े: सही। – BoltClock

0

आप एक सरल प्लगइन (compatibility notes)

$.fn.firstMatch = function(sel) { 
    var len = this.length; 
    if (!len) return this; 
    for(var i = 0; i < len; i++){ 
     var match = this[i].querySelector(sel); 
     if (match) return $(match); 
    } 
    return $(); 
} 
संबंधित मुद्दे