9-22練習:刪除函數
function removeEle(){
? ?var t=document.getElementsByTagName('tbody')[0];
? ?var as=document.getElementsByTagName('a');
? ?for(var i=0;i<as.length;i++){
? ? ? ?as[i].onclick=function(e){
? ? ? ? ? ?console.log(this.parentNode);
? ? ? ? ? ?t.removeChild(this.parentNode.parentNode);
? ? ? ?}
? ?}
}
<td><a href="javascript:;" onclick='removeEle()'>刪除</a></td>
為什么第一次點擊的時候沒有執行刪除函數,點擊第二次及以后就可以
2017-03-19
你點擊添加一行的時候,多了一行,就是多了一個a,這個a是動態添加的,你的刪除函數里面獲取到的a是之前就存在的,之前才有2個a(索引值是0和1),動態添加的那個刪除按鈕的索引值是2,這時候他身上并沒有點擊事件,然而你點擊過后,運行了removeEle函數,這時候獲取到了新的a,就變成了3個,動態添加的a就有了點擊事件,所以點第二次的時候就成了。
2017-03-16
我說的不清楚,你就當一個提示吧
2017-03-16
as.length的值是變化的,for每執行一次as.length的值就減一,而i值在增加,這樣每次第一個數也就是數組[0]是變動的,也就造成無法一次刪除,具體執行流程及原因你再琢磨一下看看。