我有元素列表,在某些事件中我想从dom中销毁它们。
if (appendedElements.length > 0) {
$.each(appendedElements, function (i) {
$(i).remove();
})
}
appendedElements
当然大于零,但我不是删除元素。这段代码出了什么问题?
答案 0 :(得分:4)
问题是参数方法的第一个参数是元素的索引,而不是元素本身。这个作为第二个参数传递。尝试:
if (appendedElements.length > 0) {
$.each(appendedElements, function (i, element) {
$(element).remove();
//i = 0, 1, 2....
})
}
您可以在此处找到完整的参考示例:
答案 1 :(得分:2)
如果appendedElements
是一个jQuery对象或者是一个dom元素引用数组,那么就没有必要进行迭代,你可以像{/ p>那样调用remove
方法
$(appendedElements).remove();
如前所述,问题是each
回调的第一个参数是项目的索引,而不是项目本身。
答案 2 :(得分:1)
if (appendedElements.length > 0) {
$.each(appendedElements, function (i) {
$(this).remove(); // use this
})
}
答案 3 :(得分:0)
您应该使用each
回调函数的第二个参数:
if (appendedElements.length > 0) {
$.each(appendedElements, function (index, element) {
$(element).remove();
})
}
答案 4 :(得分:0)
例如,如果您有列表......可以尝试不使用.each
<ul id="columar">
<li>ok</li>
<li>ok</li>
<li>ok</li>
<li>ok</li>
</ul>
如果您想要删除li列表,您可以使用此代码:
if (2 == 2) {
$('#columar li').remove()
}