JQuery каждый на ассоциативном объекте JSON - PullRequest
0 голосов
/ 10 декабря 2011

Эй, друзья, вы можете помочь мне с этим вопросом. У меня есть JSON:

video_orders = {
    "channel": {
        "1": "relevance",
        "2": "published",
        "3": "viewCount",
        "4": "rating"
    },
    "playlist": {
        "1": "position",
        "2": "commentCount",
        "3": "duration",
        "4": "published",
        "5": "title",
        "6": "viewCount"
    },
    "favorites": {
        "1": "standard"
    }
}

То, что я пытаюсь сделать, - это каждый Jquery, чтобы получить все значения внутри клавиш, таких как «канал», «список воспроизведения», «избранное».

В настоящее время я делаю следующее:

$(video_orders['channel']).each(function(index, value){
   console.log(index+' : '+value);
})

Таким образом, вывод должен быть таким: (если я сделаю console.log)

1 : relevance
2 : published
3 : viewCount
4 : rating

Но то, что я получаю, совершенно неверно. Что я делаю неправильно? Как это сделать? Заранее спасибо.

Ответы [ 2 ]

4 голосов
/ 10 декабря 2011

Вы используете неправильный each, вы хотите $.each, а не $(...).each:

$.each(video_orders['channel'], function(index, value){
   console.log(index+' : '+value);
});

Функция $(...).each используется для перебора набора подходящих элементов DOM:

Перебирать объект jQuery, выполняя функцию для каждого соответствующего элемента.

Функция $.each:

Общая функция итератора, которую можно использовать для бесшовной итерации как по объектам, так и по массивам.

Демо: http://jsfiddle.net/ambiguous/Ax7Eu/

0 голосов
/ 10 декабря 2011

Вы пытаетесь использовать $(selector).each(function) (который предназначен для селекторов jQuery) вместо $.each(collection, function) (который предназначен для любой коллекции).http://api.jquery.com/jQuery.each/

...