2016-09-19 65 views
-1

我使用这个脚本找出元素的ID在一个类,然后努力将其删除获得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(); 
} 

的问题是,当我试图删除它们,它只是删除一些元素和控制台的返回错误:

"TypeError: eic[i] is undefined"

当我不试图删除它们,不会返回错误,当我提醒获得标识有每一个。

+1

提供HTML源 - 的jsfiddle /段/ codepen /东西... – Dekel

+0

是这些元素嵌套? – ewcz

+1

那么如果你删除了元素,那么数组变得越来越短,并且你最终循环得比数组的新长度更远。 – JJJ

回答

0

试试这个,它正在

$(document).ready(function(){ 
 

 
var ids = []; 
 
    $("button").click(function(){ 
 
     $(".example").each(function(){ 
 
      ids.push(this.id); 
 
      $(this).remove(); 
 
     }); 
 
     $("#resultArray").text(ids); 
 
     }); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<button>Populate array</button> 
 

 
<div class="example" id="div1">First div element with class="example".</div> 
 

 
<div class="example" id="div2">Second div element with class="example".</div> 
 

 
<div class="example" id="div3">Third div element with class="example".</div> 
 

 
<br> 
 
Array of Ids : <div id="resultArray"><div>

相关问题