2013-06-25 5 views
5

साथ विशेषता यहाँ मेरी HTML है:एचटीएमएल 5 से JSON ऑब्जेक्ट जाओ डेटा- * जावास्क्रिप्ट

<input type="text" data-setup='{ "method" : "checkbox" }'> 

यहाँ मेरी जावास्क्रिप्ट अब तक बताया गया है:

var a = document.querySelectorAll('[data-setup]') 
for (var i=0;i<a.length;i++) { 
    alert(a[i].getAttribute('data-setup')); 
} 

यह तो अलर्ट:

ALERT: { "method" : "checkbox" } 

लेकिन मैं JSON "विधि" तक कैसे पहुंच सकता हूं? मैं अनिवार्य रूप से "चेकबॉक्स" शब्द को अलर्ट करने में सक्षम होना चाहता हूं। किसी भी मदद की सराहना की।

+0

डेटा-पासवार्ड या डेटा-सेटअप? – dandavis

+0

सेटअप, माफ करना मार्कअप गड़बड़ाना। ताज़ा! – Halcyon991

+0

यदि आप jQuery का उपयोग कर रहे हैं, तो आप केवल 'var a = $ ('# mySelector') कह सकते हैं। डेटा ('सेटअप');' –

उत्तर

5

JSON.parse कि JSON से एक उचित वस्तु बनाने के लिए सबसे आसान तरीका होगा:

for (var i=0;i<a.length;i++) { 
    var obj = JSON.parse(a[i].getAttribute('data-psswrd')); 
    alert(obj.method); //will alert what was in the method property 
    console.log(obj); // should log a proper object 
} 
बेशक

इस पुराने ब्राउज़र में काम नहीं करेगा, ताकि आप इसे शिम करने के लिए आप उस तरह चाहते हैं की आवश्यकता होगी ब्राउज़र समर्थन का। डगलस क्रॉकफ़ोर्ड में here है, और पाठ्यक्रम jQuery में JSON parsing method है यदि आप पहले से ही उस उपयोगिता का उपयोग कर रहे थे।

+0

क्या आप जानते हैं कि यह किस ब्राउज़र में काम करेगा? आईई 8 किसी भी मौके से? :) – Halcyon991

+0

@ Halcyon21 - इसे देखना था - हाँ - ऐसा लगता है कि यह IE8 वास्तव में * करता है * समर्थन करता है http://blogs.msdn.com/b/ie/archive/2008/09/10/native-json -in-ie8.aspx –

+0

यह दिलचस्प है, 'हां' की अपेक्षा करने के बजाय एक आशावादी प्रश्न था - लेकिन यह वास्तव में अच्छा है। आईई 8 में कम से कम कुछ आशीर्वाद हैं ... मदद के लिए धन्यवाद, इसे चुने गए चिह्नित करेंगे। – Halcyon991

2

आप इस के लिए JSON.parse विधि का उपयोग करने की जरूरत है:

var myJSON = JSON.parse(a[i].getAttribute('data-psswrd')); 
alert(myJSON); 

यह सभी आधुनिक ब्राउज़रों में और IE8 + में समर्थित है।

यदि आपको पुराने ब्राउज़र का समर्थन करने की आवश्यकता है here थोड़ा हैक है। ब्राउज़र संगतता अनुभाग देखें।

+0

हाँ, अब आप इसे ऑब्जेक्ट: 'अलर्ट (myJSON.method)); 'https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object – antyrat

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