jQuery

2012-10-18 6 views
6

संभव डुप्लिकेट के साथ एक नई विशेषता बनाना:
jQuery .attr retrieving custom attribute returns undefinedjQuery

मैं एक अजीब समस्या मिल गया है, लेकिन मैं आशा करती हूं कि मैं सिर्फ कुछ बेवकूफ कर रहा हूँ। क्या मैं सेट

$(selector).attr('selected', 'no'); 

जब मैं क्रोम में डोम का निरीक्षण किया, मैं सिर्फ = "चयनित" चयनित देखें, कोई फर्क नहीं पड़ता: मैं एक <img> तत्व पर एक नई विशेषता jQuery का उपयोग कर बनाने के लिए कोशिश कर रहा हूँ, और इस लाइन मूल्य

बस कुछ अतिरिक्त जानकारी: मैं केवल बूलियन मानों का उपयोग नहीं कर सकता, क्योंकि मुझे "हां", "नहीं" और "आंशिक" संपत्ति मानों का ट्रैक रखने की आवश्यकता है। मैं एक आईएसजी के "ऑनक्लिक" घटना से एक जेएस फ़ंक्शन को कॉल कर रहा हूं, और पैरामीटर के रूप में this पास कर रहा हूं। मैंने विधि में वस्तु का निरीक्षण किया है, और सही वस्तु पारित की गई है; तथ्य यह है कि विशेषता सेट की गई है (भले ही गलत मान पर भी) इसका समर्थन करता है।

मुझे यकीन है कि मैं कुछ बेवकूफ कर रहा हूं ... किसी भी सलाह की सराहना की जाएगी।

उत्तर

11

चयनित पहले से ही HTML मानक में एक विशेषता है, इसलिए आप एक ही नाम के साथ एक कस्टम विशेषता नहीं बना सकते हैं। उस स्थिति में, आपको उदाहरण के लिए data- विशेषताओं का उपयोग करना चाहिए और उदाहरण के लिए data-selected विशेषता बनाना चाहिए।

jQuery में आप .data() विधि का उपयोग कर कस्टम डेटा विशेषताओं को संभालते हैं।

कस्टम डेटा विशेषताओं को HTML5 spec here में वर्णित किया गया है।)

मेरा सुझाव चाहते हैं;

5

आप की तरह तो

$(selector).data('selected', 'no'); 

अपने तत्व एक data-selected विशेषता

1

एक डोम संपत्ति सेट हो जाएगा DOM विशेषता से अलग है विशेषता एक data-* कस्टम डाल सकता है अपने उपयोग के मामले के लिए $(selector).data() का उपयोग कर।

2

यदि आपको किसी तत्व के मनमाने ढंग से डेटा संलग्न करने की आवश्यकता है, तो .data() का उपयोग करें, .attr() पर नहीं।