2010-06-06 15 views
9

मैं jquery के साथ तत्व के कस्टम विशेषताओं को पकड़ने का एक तरीका ढूंढ रहा हूं।jquery विशेषताएँ

<span id='element' data-type='foo' data-sort='bar'></span> 

मैं एक सरणी के रूप में प्राप्त करने के लिए देख रहा हूं: ["data-type", "data-sort"]

कोई भी यह कैसे जानता है?

धन्यवाद।

उत्तर

20

आप इस तरह के माध्यम से .attributes DOM property और पाश का उपयोग कर सकते:

var arr = document.getElementById('element').attributes, attributes = []; 
//or if you're inside a jQuery loop, just use this.attributes 
//e.g.: var arr = $("span").get(0).attributes, attributes = []; 
for(var i = 0; i < arr.length; i++) { 
    if(arr[i].name.indexOf("data-") == 0) //only ones starting with data- 
    attributes.push(arr[i].name); 
} 
alert(attributes); ​//use it for something, result is ["data-type", "data-sort"] 

You can see a working demo here, एक तरफ तत्व हथियाने से, यह jQuery विशिष्ट बिल्कुल है, ताकि आप आसानी से यह पूरी तरह से हटाने सकता है अगर जरूरत है।

+0

बहुत बहुत धन्यवाद। :) – Mark

0

बस $('#element').attr('data-type'); और $('#element').attr('data-sort');

माफ करना, पहले पूरे सवाल पढ़ा जवाब दिया: - /, वहाँ कार्यक्षमता में बनाया गया एक एक सरणी के रूप में उन्हें प्राप्त करने के लिए नहीं लगता है, पहले मिल दूसरा और फिर निर्माण सरणी मैन्युअल रूप से।

3

बस jQuery का उपयोग करने वालों के लिए संदर्भ के लिए, 'डेटा-' के साथ शुरू विशेषताओं data() समारोह द्वारा पहुँचा जा सकता:

<span id='element' data-type='foo' data-sort='bar'></span> 

var el = $('#element'); 
return [el.data('type'), el.data('sort')]; 

कुछ ब्राउज़र स्टोर करने के लिए शुरू कर रहे हैं और अधिक उन्नत तरीके (स्थानीय डेटा भंडारण में इन?) और अन्य नहीं हैं, लेकिन ऐसा लगता है कि यह बहुत अच्छी तरह से काम करता है। ध्यान दें कि डब्ल्यू 3 सी वैधकर्ता इस तरह के विस्तार गुणों को पसंद नहीं करते हैं, लेकिन मुझे लगता है कि इसे मानकीकृत करने के कुछ प्रस्ताव हैं ताकि वे मान्य हो जाएं। पिछली बार जब मैंने data-key का उपयोग करके तत्वों के साथ डेटा स्टोर करने का सबसे अच्छा तरीका खोजा था, तो यह पेशेवरों के बीच विजेताओं में से एक था।

एक और तरीका है मैं भर में भाग गया एक तत्व के लिए डेटा टाई, तुरंत पहले या तत्व के बाद एक स्क्रिप्ट टैग सम्मिलित करना है यह एक प्रकार की तुलना में text/javascript जैसे अन्य दे:

<script id="templatedata" type="text/html"> 
    <span>23</span> 
    <span>Alfred</span> <!-- I'm sure you can get more creative than I'm being here --> 
</script> 

यह प्रदर्शित नहीं किया जाएगा ब्राउज़र में, और आप अभी भी $('#templatedata').html(); के माध्यम से HTML प्राप्त कर सकते हैं। यह अभी भी तकनीकी रूप से इसकी समस्याएं हो सकती है क्योंकि यह सही नहीं है, लेकिन यदि डब्ल्यू 3 सी एचटीएमएल सत्यापन आपके लिए महत्वपूर्ण है तो यह एक व्यवहार्य विकल्प हो सकता है।

0

आप इस कोड का उपयोग कर सकते हैं, यह खोज के लिए बहुत आसान है। बस jquery और कुछ भी शामिल करें .. Simple Jquery Filter

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