Я пытаюсь сделать некоторые проверки для пользователя, который выбирает элементы из списка. Я хочу убедиться, что элемент не добавляется дважды, проверяя, находится ли <li>
в массиве. Это то, что я пытаюсь и не работает.итерация по массиву в jquery
$(".List").on("click", "li", function() {
var i = 0;
var checkArr = [];
var div = $("#AddedItems");
var parent = $(this).closest("ul");
var itemtoadd = parent.find("[data-id]").attr("data-id");
var name = parent.find("[data-name]").attr("data-name");
alert(itemtoadd + name);//checking
var itemtoadd = ("<li id = " + itemtoadd + " class = \"itemAdd\">" + name + "</li>");
checkArr.push(itemtoadd); //put one in to check against?
checkArr.forEach(item)
{
if (item == itemtoadd)
alert("this item has already been added");
else {
checkArr.push(itemtoadd);
alert(itemtoadd);
$(itemtoadd).appendTo(div);
}
}
// div.html(itemtoadd);
});
Вы также можете использовать обычный цикл, что, вероятно, быстрее. – Jeffpowrs
Я не знаю, важно ли это для вашего использования, но Array.forEach не поддерживается в IE 8 и ниже. [Ссылка разработчика Mozilla] (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/forEach?redirectlocale=en-US&redirectslug=JavaScript%2FReference%2FGlobal_Objects%2FArray%2FforEach) – hradac
Я читал это. Я могу перейти к '.each()' – rogerthat