Javascript 获取的id在某些情况下不起作用
我使用这个脚本找出类中元素的ID,然后删除它们Javascript 获取的id在某些情况下不起作用,javascript,jquery,Javascript,Jquery,我使用这个脚本找出类中元素的ID,然后删除它们 var ids = []; var eic = document.getElementsByClassName('classname'); for(var i = 0, length = eic.length; i < length; i++) { ids.push(eic[i].id); $('#'+eic[i].id).remove(); } varids=[]; var eic=document.getElemen
var ids = [];
var eic = document.getElementsByClassName('classname');
for(var i = 0, length = eic.length; i < length; i++) {
ids.push(eic[i].id);
$('#'+eic[i].id).remove();
}
varids=[];
var eic=document.getElementsByClassName('classname');
对于(变量i=0,长度=eic.length;i
问题是,当我试图删除它们时,它只删除部分元素,控制台返回错误:
“类型错误:eic[i]未定义”
当我不尝试删除它们时,不会返回任何错误,并且当我发出警报时,会出现每一个错误。试试这一个,它正在工作
$(文档).ready(函数(){
var-id=[];
$(“按钮”)。单击(函数(){
$(“.example”).each(函数(){
id.push(this.id);
$(this.remove();
});
$(“#结果数组”).text(id);
});
});代码>
填充数组
带有class=“example”的第一个div元素。
带有class=“example”的第二个div元素。
带有class=“example”的第三个div元素。
ID数组:
提供html源代码-jsfiddle/snippet/codepen/something…这些元素是嵌套的吗?如果删除元素,那么数组会变短,循环长度会超过数组的新长度。有更简单的方法来迭代节点列表。虽然for循环更快,但您可能会遇到越界问题。有了ES6语法,您可以使用它([…document.queryselectoral(“.classname”].forEach/map/etc
),但我建议您改用eic.forEach
。为什么要混合使用jQuery和DOM?