#jquery #each
#jquery #каждый
Вопрос:
<script>
$(document).ready(function() {
var data = { "programs": [ { "name":"zonealarm", "price":"500" }, { "name":"kaspersky", "price":"200" } ] };
$.each(data.programs[0], function(key,val) {
alert(key val);
});
});
</script>
Этот код извлекает первые данные. name:zonealarm
и price:500
.
Как я могу получить все данные в объекте?
Я пытался $.each(data.programs, function(key,val)
, но это не сработало.
Должен ли я поместить это в цикл?
Ответ №1:
$.each()
работает как для объектов, так и для массивов:
var data = { "programs": [ { "name":"zonealarm", "price":"500" }, { "name":"kaspersky", "price":"200" } ] };
$.each(data.programs, function (i) {
$.each(data.programs[i], function (key, val) {
alert(key val);
});
});
…и поскольку вы получите текущий элемент массива в качестве второго аргумента:
$.each(data.programs, function (i, currProgram) {
$.each(currProgram, function (key, val) {
alert(key val);
});
});
Ответ №2:
Вы действительно передаете первый элемент данных в функцию each.
Вместо этого передайте data.programs в функцию each. Измените код на приведенный ниже:
<script>
$(document).ready(function() {
var data = { "programs": [ { "name":"zonealarm", "price":"500" }, { "name":"kaspersky", "price":"200" } ] };
$.each(data.programs, function(key,val) {
alert(key val);
});
});
</script>
Комментарии:
1. но тогда я не получаю точных значений, только индекс каждого объекта?
2. Потому что вы получаете здесь весь объект. Чтобы получить точные значения / извлечь значения из объекта: console.log(ключ » » val.name » » валоваяцена);
Ответ №3:
В принципе, здесь нужно выполнить два цикла. То, что вы уже делаете, — это повторение каждого элемента в 0-м элементе массива.
У вас есть программы: [ {…}, {…} ] итак, programs[0] — это { «name»: «zonealarm», «price»:»500″ }, Так что ваш цикл просто повторяет это.
Вы могли бы выполнить внешний цикл над массивом
$.each(data.programs, function(index) {
// then loop over the object elements
$.each(data.programs[index], function(key, value) {
console.log(key ": " value);
}
}
Ответ №4:
Вставьте данные в раздел «INId»…
$(document).ready(function() {
var data = { "programs": [ { "name":"zonealarm", "price":"500" }, { "name":"kaspersky", "price":"200" } ] };
$.each(data.programs, function(key,val) {
// console.log(val);
$('#InId').append("Name: " val.name " amp; Price: " val.price "<br/>");
});
});
$(документ).готово(функция() { var data = { «программы»: [ { «имя»: «zonealarm», «цена»: «500» }, { «имя»:»касперский», «цена»:»200″ } ] }; $. каждый(данные.программы, функция(ключ,значение) { // console.log(значение); $(‘#InId’).append(«Имя: » val.name » amp; Price: » val.price «
«); }); });
Ответ №5:
var arType = [];
$.each($("input[name='archiveType[]']:checked"), function() {
arType.push($(this).val());
});
arType = arType.join(",");
Комментарии:
1. Ваш ответ можно было бы улучшить, добавив больше информации о том, что делает код и как это помогает операционной системе.