2013-07-28 5 views
6

सवाल सरल है, उत्तर शायद नहीं।विशेषता के साथ परेशानी हो रही है! = चयनकर्ता

मैं एक विशिष्ट आईडी के बिना सभी इनपुट तत्वों में कई शैलियों को लागू करने की कोशिश कर रहा हूं। मैं अपने सीएसएस स्टाइलशीट में इस चयनकर्ता का उपयोग करता हूं: input[id!='move'] लेकिन दुर्भाग्यवश यह आईई 10 या क्रोम में काम नहीं कर रहा है।

उत्सुक बात यह है कि यह ब्लॉक: input:not(#move) दोनों में पूरी तरह से काम करता है। मैं खो गया हूं क्योंकि कोड का पहला ब्लॉक तब तक काम करना चाहिए जब तक कि मैं समझता हूं कि इस प्रकार के चयनकर्ता कैसे काम करते हैं।

कोई विचार?

+2

आप [विशेषता चयनकर्ता] (http://www.w3.org/TR/selectors/#attribute-selectors) का उपयोग करके एक विशेषता को बाहर नहीं कर सकते - सीएसएस में एक विशेषता मान को बाहर करने के लिए '!' का उपयोग करके अवैध। यदि आपको आईडी को बाहर करने के लिए * की आवश्यकता है, तो आपको [': not()'] (http://www.w3.org/TR/selectors/#negation) छद्म-श्रेणी शामिल करना होगा। – Adrift

उत्तर

6

यह एक गैर-मानक विशेषता चयनकर्ता invented by jQuery है। यह Selectors specification का हिस्सा नहीं है, इसलिए यह jQuery के बाहर कहीं भी काम नहीं करेगा (इसमें document.querySelectorAll() जैसी चीजें शामिल हैं)।

कड़ाई से बोलते हुए, मानक चयनकर्ता वाक्यविन्यास में jQuery के input[id!='move'] के प्रत्यक्ष समतुल्य input:not([id='move']) है, एक विशेषता चयनकर्ता के साथ। लेकिन चूंकि आप किसी विशिष्ट आईडी के बिना तत्वों से मिलान करना चाहते हैं, input:not(#move) ठीक है।

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