Я пытаюсь использовать приведенный ниже код, и он работает так, как я хочу, оповещающим с honda, toyota и ford во втором каждом(). Но первый из них просто выводит 0. Почему он это делает?
var cars = {
honda : {0: "Accord", 1: "Prelude", 2: "Civic"},
toyota: {0: "Camry", 1: "Corolla", 2: "BRZ"},
ford: {0: "Mustang", 1: "Focus"}
}
$(cars).each(function(key, value)) {
alert(key);
})
$.each(cars, function(key, value) {
alert(key);
})
Ваш первый пример выводит 0, потому что когда вы делаете $(cars)
, вы обертываете свой cars
объект jQuery, объект с одним элементом с индексом 0.
Также следует отметить различие между "каждым" методом:
jQuery.each() или $.each():
Общая функция итератора, которая может использоваться для беспрепятственной итерации по обоим объектам и массивам.
Итерация над объектом jQuery, выполнение функции для каждого согласованного элемента.
попробуйте это, чтобы пройти через массив:
for (i=0; i<cars.length; i++){
alert (cars[i]);
}
cars
не являются допустимым элементом или селектором DOM, поэтому он выводитO
honda : ["Accord", "Prelude", "Civic"]