我想對用戶從列表中選擇項目做一些驗證。我想通過檢查<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