मैं (HTML का उपयोग करके) सभी HTML HTML मार्कअप में निम्नानुसार चुन सकता हूं:
$('div')
लेकिन मैं उपरोक्त चयन से किसी विशेष div(कहते हुए id="myid") को बाहर करना चाहता हूं ।
मैं Jquery फ़ंक्शंस का उपयोग कैसे कर सकता हूं?
जवाबों:
सरल:
$('div').not('#myid');
उपयोग करने से .not()उसके द्वारा दिए गए सेट से दिए गए चयनकर्ता द्वारा मिलान किए गए तत्वों को हटा दिया जाएगा $('div')।
आप :not()चयनकर्ता का उपयोग भी कर सकते हैं :
$('div:not(#myid)');
दोनों चयनकर्ता एक ही काम करते हैं, हालांकि :not(), तेजी से संभव है , क्योंकि jQuery के चयनकर्ता इंजन सिज़ल इसे एक देशी .querySelectorAll()कॉल में अनुकूलित कर सकते हैं ।
.not()करना कहीं अधिक बेहतर है :not()।
$('div:not(#myid)');(उद्धरण के बिना) होना चाहिए । @ रेयानोस: क्यों? :not()एक CSS3 चयनकर्ता है। jQuery सीधे चयनकर्ता को पास कर सकता है querySelectorAllयदि समर्थित हो ...
.notऔर कम पठनीय है। मुझे कहना चाहिए ": jQuery में चयनकर्ता नहीं"
:not()। चयनकर्ताओं 4 के लिए न तो यह चयनकर्ता नया है, न ही इसे उद्धरणों की अनुमति देने के लिए बदला गया है। हालांकि अधिक जटिल चयनकर्ताओं को अनुमति देने के लिए इसे बदल दिया गया है। जब तक मैं अपनी टिप्पणी ... गलत समझा
querySelectorAllसबसे तेज़ के रूप में चिह्नित करता है। वास्तविक विश्व बेंचमार्क नहीं है, लेकिन उम्मीद की जा रही है कि इसे देखने के लिए jQuery के आंतरिक से कोई उपरि नहीं है। :not()वास्तव में तेजी से, संभवत: क्योंकि सिज़ल जानता है कि वह इसे उपयोग करने के लिए अनुकूलित कर सकता हैquerySelectorAll()
var els = toArray(document.getElementsByTagName("div"));
els.splice(els.indexOf(document.getElementById("someId"), 1);
आप इसे पुराने ढंग से कर सकते हैं। इतना सरल कुछ के साथ jQuery के लिए कोई ज़रूरत नहीं है।
प्रो युक्तियाँ:
डोम तत्वों का एक सेट सिर्फ एक सरणी है, इसलिए अपने पसंदीदा toArrayतरीके का उपयोग करें NodeList।
एक सेट में तत्वों को जोड़ना बस है
set.push.apply(set, arrOfElements);
एक सेट से एक तत्व को निकालना है
set.splice(set.indexOf(el), 1)
आप कई तत्वों को एक साथ आसानी से नहीं निकाल सकते :(
.querySelector()या इसके .querySelectorAll()साथ div:not(#myid) तेज ... क्या यह है?
$("div:not(#myid)")
या
$("div").not("#myid")
सभी तरीकों का चयन करने के लिए मुख्य तरीके हैं, लेकिन एक आईडी
आप यहां डेमो देख सकते हैं
$("div:not(#myid)") तेज है ... मूल जावास्क्रिप्ट का उपयोग करते समय या इसके लिए sizzlejs अनुकूलन की जांच करें । .querySelector().querySelectorAll()
इससे हो जाना चाहिए:
$('div:not("#myid")')