var eles=document.getelementsbyname("subcheck");
for(var =1,ivar ele=eles[i];
$(ele).remove();
}針對以上**,若eles的長度為4的話,實際情況只能刪掉2個。這是因為js在刪掉乙個元素的同時,將eles集合中的元素同時刪掉。也就是說被迴圈的集合是動態的。
比如,原eles[a,b,c,d]
第一次迴圈前 eles=[a,b,c,d] i=0; 獲得 ele=a,刪除掉a
第二次迴圈前 eles=[b,c,d] i=1; 獲得 ele=c ,刪除掉c
第三次迴圈前 eles=[b,d] i=2;這時i的值已經大於eles集合的長度,不再進入迴圈。
最後的結果就是只刪除掉了部分元素。
正確的**為:
var eles=document.getelementsbyname("subcheck");
for(var =eles.length-1,i>=0;i--)
針對以上**,比如,原eles[a,b,c,d]
執行過程為:
第一次迴圈前 eles=[a,b,c,d] i=3; 獲得 ele=d,刪除掉d
第二次迴圈前 eles=[a,b,c] i=2; 獲得 ele=c ,刪除掉c
第三次迴圈前 eles=[a,b] i=1; 獲得 ele=b, 刪除掉b
第三次迴圈前 eles=[a] i=0; 獲得 ele=a, 刪除掉a
此時i=-1,迴圈結束。
最後的結果是全部刪除。
js中,清空物件(刪除物件的屬性)
在專案中,有些物件用完後需要重置,下面簡單介紹下js中清除物件的方法。方法如下 方法一 字面量定義物件 第一步,定義乙個空物件並列印出來,和效果 var student console.log student 列印結果 第二步,為物件新增屬性並列印,和列印結果如下 student.name xiao...
JS中for迴圈優化問題
引 每個接觸js的開發人員都不可避免的與for迴圈打交道,畢竟這是遍歷必不可少的工具之一。然而當迴圈次數比較大時,效率問題必須重視。在群眾,站長提出了這個話題,回去好好想了下,整理出來,大家一起討論討論。1.倒序比正序效率高?聽好多人說,倒序效率更高,好吧,做個實驗,讓事實說話 測試 複製 測試結果...
js中關於setTimeOut()迴圈的問題
function stop function checktime i return i function fun2 week function starttime starttime 上面 執行起來是沒錯 若是這樣呢 while true 今天同學問到了這個為啥不能用迴圈呢,我給的解釋就是用迴圈沒有...