[Jquery] विशेषता द्वारा तत्वों का चयन करें


Answers

if ($('#A').attr('myattr')) {
    // attribute exists
} else {
    // attribute does not exist
}

संपादित करें:

उपरोक्त else में गिर जाएगा -ब्रैंच जब myattr मौजूद है लेकिन एक खाली स्ट्रिंग या "0" है। यदि यह एक समस्या है तो आपको स्पष्ट रूप से undefined परीक्षण करना चाहिए:

if ($('#A').attr('myattr') !== undefined) {
    // attribute exists
} else {
    // attribute does not exist
}
Question

मेरे पास जेनरेट आईडी के साथ चेकबॉक्स का संग्रह है और उनमें से कुछ में अतिरिक्त विशेषता है। क्या किसी तत्व के पास विशिष्ट विशेषता है या नहीं, यह जांचने के लिए JQuery का उपयोग करना संभव है? उदाहरण के लिए, क्या मैं सत्यापित कर सकता हूं कि निम्न तत्व में "myattr" विशेषता है या नहीं? विशेषता का मूल्य भिन्न हो सकता है।

<input type="checkbox" id="A" myattr="val_attr">A</input>

उदाहरण के लिए, मैं उन सभी चेकबॉक्सों का संग्रह कैसे प्राप्त कर सकता हूं जिनके पास यह विशेषता बिना किसी एक की जांच किए है? क्या यह संभव है?




प्रश्न में ऊपर वर्णित अनुसार मैंने इच्छित व्यवहार के साथ एनपीएम पैकेज बनाया है।

[npm] और [github] लिंक

उपयोग बहुत आसान है। उदाहरण के लिए:

<p id="test" class="test">something</p>
$("#test").hasAttr("class")

सच आता है।

ऊंट के साथ भी काम करता है।




एक विशेषता $('[someAttribute]') साथ सभी तत्वों को चुनने के अलावा $('[someAttribute]') या $('input[someAttribute]') आप किसी ऑब्जेक्ट पर बूलियन चेक करने के लिए फ़ंक्शन का उपयोग भी कर सकते हैं जैसे क्लिक हैंडलर में:

if(! this.hasAttribute('myattr') ) { ...




जावास्क्रिप्ट में, ...

null == undefined

... true * देता true । यह == और === बीच का अंतर है। साथ ही, undefined नाम को परिभाषित किया जा सकता है (यह null जैसा कीवर्ड नहीं है) ताकि आप किसी अन्य तरीके से जांच कर बेहतर हो। सबसे विश्वसनीय तरीका शायद typeof ऑपरेटर के रिटर्न वैल्यू की तुलना करना है।

typeof o == "undefined"

फिर भी, इस मामले में शून्य से तुलना करना चाहिए।

* undefined वास्तव में अपरिभाषित है।




$("input[attr]").length एक बेहतर विकल्प हो सकता है।




$("input#A").attr("myattr") == null