У меня есть довольно простой код, но я уверен, что это очень плохо написано. Я попытался создать некоторые объекты внутри массива, а затем построить list
с использованием метода jQuery .each()
.Создайте список совпадающих элементов из массива объектов с помощью jQuery
Я думаю, что это глупо легко, но я только учусь ...
Это код JQuery я написал:
$(document).ready(function() {
//items
var armas = {
BK: {
mano_izq: [{
type: 2,
index: 5,
name: "juan"
}, {
type: 2,
index: 5,
name: "juancho"
}]
},
MG: {
mano_der: [{
type: 2,
index: 5,
name: "juan2"
}, {
type: 2,
index: 5,
name: "juan3"
}]
}
};
//controles
$("#selec").on("click", function (e) {
e.preventDefault();
$(".itemlist").each(armas.BK.mano_izq, function (i, value) {
$(this).append('<li>'+ value.name +'</li>');
});
});
});
Как вы можете видеть, в этом примере я пытаюсь построить этот список (без успеха, к сожалению)
<ul class="itemlist">
<li>juan</li>
<li>juancho</li>
<li>juan2</li>
<li>juan3</li>
</ul>
Вы можете проверить мою скрипку здесь: http://jsfiddle.net/Frondor/xbcxy8ur/
Я preffer использовать '$ .map()' метода над этим, но +1 для _caching_ функция 'addLi' – Frondor
Ну, на самом деле' $ .map() 'имеет другое намерение. Этот метод предназначен для перевода одного массива в другой, а не только для его итерации, хотя перевод _include_ iteration. Но если вы хотите написать более очевидный (== лучше поддерживаемый) код, используйте API-методы по своему назначению. К сожалению, с jQuery '$ .map()' действительно более удобно, чем '$ .each()' из-за ошибки в '$ .each()' design (iterator в качестве первого аргумента), но и в других библиотеках швейцарских ножей (такие как подчеркивание) «каждый» определенно лучше. –