我正在尝试使用 .each() 循环遍历 html 中的列表,并删除具有匹配 id 的任何元素。
<ul>
<li id="0" class="liRem">zero</li>
<li id="1" class="liRem">one</li>
<li id="2" class="liRem">two</li>
<li id="3" class="liRem">three </li>
<li id="4" class="liRem">four </li></ul>
还有 jquery:
var output = [1, 3];
$(document).ready(function () {
$("ul li").each(function () {
if(this.id in output) {
$(this).remove();
};
});
});
但是,它只是删除页面上的下一个“第一个”元素,而不是删除指定的 li 元素。
另外,我无法改变我正在使用数组的事实,并且该列表是 html 文档中唯一的列表。我是 jquery 新手,所以任何建议将不胜感激
最佳答案
Javascript 没有“数组中的值”功能。这用于 for 循环来遍历对象的每个元素。
相反,您应该使用 JQuery inArray method或 array.indexOf(value) > -1。 此外,Id 是字符串,而数组包含数字。
这有效:
var output = ["1", "3"];
$(document).ready(function () {
$("ul li").each(function () {
if(output.indexOf(this.id) > -1) {
$(this).remove();
};
});
});
关于javascript - 为什么我的 jquery 删除列表中的第一个元素而不是指定的元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33253222/