2013-06-25 11 views
5

Tu jest mój HTML:Uzyskaj obiekt JSON z HTML5 teleinformatyczny * atrybut z JavaScript

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

Oto mój JavaScript dotąd:

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

to wtedy alarmy:

ALERT: { "method" : "checkbox" } 

Ale jak mogę uzyskać dostęp do "metody" JSON? Chcę zasadniczo być w stanie ostrzec słowo "checkbox". Każda pomoc doceniona.

+0

data-passwrd lub konfiguracja danych? – dandavis

+0

Instalator, przepraszam, glitch znacznika. Odświeżać! – Halcyon991

+0

Jeśli używasz jQuery, możesz po prostu powiedzieć: 'var a = $ ('# mySelector'). Data ('setup');' –

Odpowiedz

5

JSON.parse byłoby najprostszym sposobem na stworzenie odpowiedniego obiektu z tej 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 
} 

Oczywiście to nie będzie działać w starszych przeglądarkach, więc trzeba pasowana, jeśli chcesz tego rodzaju obsługi przeglądarki. Douglas Crockford ma podkładkę here, lub oczywiście jQuery ma JSON parsing method, jeśli już używasz tego narzędzia.

+0

Czy wiesz, jakie przeglądarki będą działać? IE8 przez przypadek? :) – Halcyon991

+0

@ Halcyon21 - musiałem to sprawdzić - tak - wygląda na to, że jest to coś, co IE8 faktycznie * robi * obsługuje http://blogs.msdn.com/b/ie/archive/2008/09/10/native-json -in-ie8.aspx –

+0

To interesujące, było raczej nadzieją niż oczekiwaniem na "tak" - ale to naprawdę dobre. IE8 ma przynajmniej kilka błogosławieństw ... Dzięki za pomoc, oznaczy to jako wybrane. – Halcyon991

2

Trzeba użyć JSON.parse metody to:

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

ta jest dostępna we wszystkich nowoczesnych przeglądarkach oraz w IE8 +.

Jeśli potrzebujesz obsługi starszych przeglądarek, here to mały hack. Zobacz rozdział zgodność z przeglądarką.

+0

tak, teraz możesz użyć go jako Object: 'alert (myJSON.method); 'https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object – antyrat

Powiązane problemy