2013-06-25 10 views
5

ile bağlıyor:HTML5 JSON nesnesi alın veriye * İşte benim bir HTML kodunun JavaScript

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

İşte şimdiye kadar benim JavaScript var:

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

Bu da uyarılar:

ALERT: { "method" : "checkbox" } 

Ama JSON "yöntemine" nasıl erişebilirim? Aslında "onay kutusu" kelimesini uyarmak istiyorum. Herhangi bir yardım takdir edildi.

+0

data-passwrd veya data-setup? – dandavis

+0

kurulum, kusurlu işaretleme hatası. Yenile! – Halcyon991

+0

jQuery'yi kullanıyorsanız, sadece 'var a = $ ('# mySelector') veri diyebilirsiniz ('kurulum'); –

cevap

5

JSON.parse o JSON'dan uygun bir nesne oluşturmanın en basit yolu olacaktır: Elbette

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 
} 

Eğer bu tür isterseniz bunu şim gerekir böylece bu, eski tarayıcılarda çalışmaz tarayıcı desteği Douglas Crockford'un here numaralı bir shim'i vardır ve ya jQuery zaten bu yardımcı programı kullanıyorsanız JSON parsing method'a sahiptir.

+0

Bunun hangi tarayıcılarda çalışacağını biliyor musunuz? IE8 herhangi bir şansa göre mi? :) – Halcyon991

+0

@ Halcyon21 - bakmak zorunda kaldı - evet - böyle bir şey IE8 aslında gibi * destekliyor * destek http://blogs.msdn.com/b/ie/archive/2008/09/10/native-json -in-ie8.aspx –

+0

Bu ilginç, 'evet' beklemekten ziyade daha umut verici bir soru oldu - ama bu gerçekten çok iyi. IE8 en azından bazı nimetler var ... Yardım için teşekkürler, bunu seçilen olarak işaretleyecektir. – Halcyon991

2

Bunun için JSON.parse yöntemi kullanmak gerekir: Bu, tüm modern tarayıcılarda ve IE8 + desteklenir

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

.

Eski tarayıcıları desteklemeniz gerekiyorsa here küçük bir hackedir. Bkz. Tarayıcı uyumluluğu bölüm.

+0

evet, şimdi Object gibi kullanabiliyorsunuz: 'alert (myJSON.method)); https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object – antyrat

İlgili konular