2012-12-26 19 views
13

मैं इस काम के होते हैं:jQuery चयनकर्ताओं और एचटीएमएल 5 डेटा- * गतिशील सेट विशेषताओं

<div data-people="australian">Australian people eats...</div> 

    <script type="text/javascript"> 
    alert($("[data-people=australian]").html()); 
    </script> 

लेकिन यह अन्य काम नहीं करता है और मैं हल करने के लिए पता नहीं कैसे:

<div id="mich">Australian people eats...</div> 

    <script type="text/javascript"> 
    $("#mich").data("people", "australian"); 

    alert($("[data-people=australian]").html()); 
    </script> 

क्यों मैं डेटा सेट नहीं कर सकता- * jQuery से एचटीएमएल 5 विशेषताओं और एक DOM ऑब्जेक्ट का चयन करने के लिए उनका उपयोग ??? धन्यवाद

+0

क्या आपका प्रश्न "क्यों" या "कैसे हल करें" है? हो सकता है कि http://stackoverflow.com/questions/13094777/find-elements-by-custom-data-attribute-value/13094850#13094850 देखें। – pimvdb

+0

संभावित डुप्लिकेट [jQuery $ .fn.data() में परिवर्तन क्यों नहीं है संबंधित एचटीएमएल 5 डेटा - \ * विशेषताएँ अद्यतन करें?] (Http://stackoverflow.com/questions/5507718/why-dont-changes- टू-jquery-fn-data-update-the-related-html-5-data-a) – itsadok

उत्तर

35

jQuery आंकड़ों के data- विशेषता() मानचित्रण एक दिशा है की

लॉट। यदि आप वास्तव में नोड पर विशेषता सेट करना चाहते हैं तो आपको attr() फ़ंक्शन का उपयोग करना चाहिए।

$("#mich").attr("data-people", "australian"); 
docs:

से

डेटा- विशेषताओं पहली बार में खींच लिया डेटा संपत्ति एक्सेस किया जाता है और उसके बाद नहीं रह पहुँचा या उत्परिवर्तित कर रहे हैं (सभी डेटा मानों तो jQuery में आंतरिक रूप से जमा हो जाती है) कर रहे हैं

+2

मैं तुमसे प्यार करता हूँ! अद्भुत काम करना! –

+1

यह बहुत पागल है कि डेटा के लिए jQuery का अपना चयनकर्ता इसे ध्यान में नहीं लेता है और इसके डेटा कैश की जांच करता है। '.data()' कम उपयोगी और बग को ट्रैक करने के लिए कड़ी मेहनत का स्रोत बनाता है। – Thor84no

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