[英]iterate over array in jquery
我正在尝试对从列表中选择项目的用户进行验证。 我想通过检查<li>
是否已经在数组中来确保没有两次添加项。 这是我正在尝试,但无法正常工作。
$(".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);
});
您在这里至少有三个问题:
Array.forEach
-它需要一个接受项的函数。 alert
。 checkArr
用作局部变量-每次输入该函数都会得到一个空数组。 话虽如此,您无需保留任何数组就可以实现目标。 我相信您可以使用以下方法替换从第一条警报开始的所有内容:
if ($('#' + itemtoadd, div).length == 0) {
itemtoadd = ("<li id = " + itemtoadd + " class = \"itemAdd\">" + name + "</li>");
div.append(itemtoadd);
}
else {
alert("this item has already been added");
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.