2012-08-12 31 views
11

मैं जो करना चाहता हूं वह दस्तावेज़ पर सभी इनपुट बटन का चयन करना है, जो कि एक विशिष्ट आईडी के अंतर्गत रहते हैं।मैं एक विशिष्ट आईडी के अलावा सभी इनपुट का चयन कैसे करूं?

उदाहरण:

<body> 
<input type="button"> 

<div id="something"> 
    <input type="button"> 
</div> 
<div id="something2"> 
    <input type="button"> 
</div> 


<input type="button"> 
<input type="button"> 
<input type="button"> 
</body> 

उदाहरण के लिए, मैं सभी आदानों का चयन करने, उन है कि <div> जिसका id के तहत रहता है सिवाय "कुछ" है जाएगा।

मैं क्या कोशिश की है:

1) $('input[type="button"]:not(:parent(#something))').addCSS(); 

2) $('input[type="button"] :not(#something input[type="button"])') 

और अन्य इसी तरह के दृष्टिकोण

+0

[डुप्लिकेट "तत्वों के लिए [JQuery चयनकर्ता] के संभावित डुप्लिकेट (http://stackoverflow.com/questions/11924672/jquery-selector-for-not-wrapped-elements) – Blazemonger

उत्तर

18

आप इसे इस तरह से कर सकते हैं (अपेक्षाकृत कुशलता से)।

$("input[type=button]").filter(function() { 
    return $(this).closest("#something").length == 0; 
}); 

सबसे पहले, आप सभी input[type=button] तत्वों, तो एक अभिभावक के रूप #something के साथ उन लोगों को दूर मिलता है।

एक और संभावना यह है:

$("input[type=button]").not("#something input[type=button]") 

आप परीक्षण करने के लिए दोनों को देखने के लिए जो अधिक कुशल है होगा, लेकिन या तो काम करेंगे। दोनों की

कार्य डेमो: नहीं: http://jsfiddle.net/jfriend00/fjxDb/

1

हो सकता है कि यह काम करता है: $(":not(#something) input[type=button]")

+1

मुझे इसकी दक्षता के बारे में आश्चर्य होगा यह दस्तावेज़ में लगभग हर ऑब्जेक्ट (एक को छोड़कर) से मेल खाता है: नहीं (# कुछ) '। – jfriend00

+1

@ jfriend00 और यह भी काम नहीं करता है http://jsfiddle.net/Zt4Qd/ – undefined

+0

बस इसे एक यादृच्छिक शॉट दें ... शायद आपको कुछ भाग्य मिलेगा। अगली बार, मैं इसे स्वयं करने की सलाह दूंगा यदि यह पहले से ही पुनर्निर्माण करना आसान है। – Kiruse

6

आप लगभग वहाँ थे, तुम सब करने की जरूरत है अपने से पहले स्थान निकाल सकता था।

$('input[type="button"]:not(#something input[type="button"])') 

मैं जानता हूँ कि यह एक पुराने सवाल है, लेकिन यह गूगल पर पहले दिखाई देता है और() एक विकल्प jQuery के .not का उपयोग कर के रूप में स्वीकार जवाब में दिखाया गया है हमेशा नहीं है।

+0

सुधार हमेशा स्वागत है! : डी –

+0

jQuery का '.not()' कभी-कभी कोई विकल्प क्यों नहीं है? यह एक jQuery प्रश्न है ताकि आप हमेशा jQuery के साथ '.not()' का उपयोग कर सकें, है ना? – jfriend00

+0

जब आप गतिशील रूप से ईवेंट को संभालना चाहते हैं, तो उन तत्वों पर भी जो ** ** के बाद जोड़े गए हैं, आप इसे लागू करते हैं, आप आम तौर पर $ (दस्तावेज़) .on ('theEvent', 'theelector') का उपयोग करेंगे। वहां, चयनकर्ता को .not() के साथ संयोजित करना संभव नहीं है, जबकि इसका उपयोग करना संभव है: चयनकर्ता में नहीं। –