jQuery итерация по объекту (JSON) - PullRequest
0 голосов
/ 20 ноября 2010

JSON:

{"Name":"bb", "age":"10"}

Я много раз искал в Интернете, но большинство ответов - я знаю "Имя" и "возраст" ранее, поэтому они ссылаются на j.Name,j.age.

Я просто хочу сделать эквивалентную вещь, так как мы не знаем ключей внутри объекта, мы хотим перебрать все элементы и распечатать как KEY, так и VALUE (мы незнаю КЛЮЧ ранее).В Firefox для каждого оператора все в порядке, но я обнаружил, что IE не может поддерживать каждый цикл ...

Ответы [ 3 ]

4 голосов
/ 20 ноября 2010

Вы можете использовать цикл for...in, например:

var obj = {"Name":"bb", "age":"10"};
for(var key in obj) {
  if(obj.hasOwnProperty(key))
    alert("Key: " + key + "\nValue: " + obj[key]);
}

Или в jQuery $.each(), если вам нужно замыкание, например:

var obj = {"Name":"bb", "age":"10"};
$.each(obj, function(key, value) {
    alert("Key: " + key + "\nValue: " + value);
});

Вы можете протестировать обе версии здесь .

1 голос
/ 20 ноября 2010
var json = {"Name":"bb", "age":"10"}
for ( var i in json ) {
    console.log( json[i] );
}
1 голос
/ 20 ноября 2010

Без jQuery вы бы использовали for-in цикл

var person = {"Name":"bb", "age":"10"};

for(var attr in person) {
  alert('Attribute: '+attr);
  alert('Value: '+person[attr]);
} 

... в jQuery:

var person = {"Name":"bb", "age":"10"};
$.each(person, function(attr, value) {
  alert('Attribute: '+attr);
  alert('Value: '+value);
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...