2009-12-28 3 views
34

मेरे पास एक पृष्ठ पर कई ऑब्जेक्ट हैं और मैं केवल उनमें से कुछ पर jQuery का उपयोग करके एक ऑपरेशन करना चाहता हूं - जिनके पास निर्दिष्ट विशेषता नहीं है। तो:jQuery चयनकर्ता - निर्दिष्ट विशेषता के बिना ऑब्जेक्ट खोजें

<li style='...'>some text</li> 
<li style='...'>some other text</li> 
<li>some very diffrent text</li> 

और जावास्क्रिप्ट में मैं होगा:

$('li[style]').hide(); 

कि एक style sttribute साथ सभी तत्वों को छिपाने जाएगा। लेकिन अगर मैं के बिना छिपाना चाहता हूं, तो मेरा चयनकर्ता कैसा दिखना चाहिए?

उत्तर

69
jQuery("li:not([style])").hide(); 
+0

बहुत ही सरल, एक पंक्ति पर ... सही उत्तर! – Druzion

5

आप उपयोग कर सकते हैं: तत्वों कि नहीं मैच एक निश्चित चयनकर्ता कर को देखने के लिए नहीं छद्म-चयनकर्ता। अपने उदाहरण में, आप शैली विशेषता के बिना सभी ली तत्वों का चयन करना चाहते है, तो आप कुछ इस तरह का उपयोग करेंगे:

$('li:not([style])').hide(); 

तुम भी अन्य चयनकर्ताओं के साथ इस गठजोड़ कर सकते हैं: एक

$('#div input:not(:checked)').show(); 

यह सुंदर शक्तिशाली उपकरण!

0

आप इसे स्पष्ट और अधिक चयनकर्ता के बजाय .not() विधि का उपयोग करने performant मिल सकता है। एक उदाहरण के रूप:

$('li').not('[style]').hide(); 

यह भी क्या jQuery devs recommend है।