Rumah > Artikel > hujung hadapan web > JQuery $.setiap merentasi objek tatasusunan JavaScript instances_jquery
Lihat contoh jQuery mudah untuk mengulangi objek tatasusunan JavaScript.
var json = [ {"id":"1","tagName":"apple"}, {"id":"2","tagName":"orange"}, {"id":"3","tagName":"banana"}, {"id":"4","tagName":"watermelon"}, {"id":"5","tagName":"pineapple"} ]; $.each(json, function(idx, obj) { alert(obj.tagName); });
Coretan kod di atas berfungsi dengan baik, menggesa “epal”, “oren”…dsb., seperti yang dijangkakan.
Masalah: Rentetan JSON
Contoh berikut mengisytiharkan rentetan JSON (disertakan dalam petikan tunggal atau berganda) secara langsung.
var json = '[{"id":"1","tagName":"apple"},{"id":"2","tagName":"orange"}, {"id":"3","tagName":"banana"},{"id":"4","tagName":"watermelon"}, {"id":"5","tagName":"pineapple"}]'; $.each(json, function(idx, obj) { alert(obj.tagName); });
Dalam Chrome ia menunjukkan ralat berikut dalam konsol:
Uncaught TypeError: Tidak boleh menggunakan operator 'in' untuk mencari '156'
dalam [{"id":"1","tagName":"apple"}...
Penyelesaian: Tukar rentetan JSON kepada objek JavaScript.
Untuk membetulkannya, tukarkannya kepada objek JavaScript melalui JSON.parse() standard atau $.parseJSON jQuery.
var json = '[{"id":"1","tagName":"apple"},{"id":"2","tagName":"orange"}, {"id":"3","tagName":"banana"},{"id":"4","tagName":"watermelon"}, {"id":"5","tagName":"pineapple"}]'; $.each(JSON.parse(json), function(idx, obj) { alert(obj.tagName); }); //or $.each($.parseJSON(json), function(idx, obj) { alert(obj.tagName); });