我想对用户从列表中选择项目做一些验证。我想通过检查<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);
});
你也可以使用常规for循环,这可能会更快。 – Jeffpowrs
我不知道这是否对您的用例很重要,但是IE 8和以下版本不支持Array.forEach。 [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