Javascript 获取的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

我使用这个脚本找出类中元素的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.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?