javascript中的動態節點列表的危險處理

2021-08-26 13:09:20 字數 612 閱讀 1670

abcafefefd

上述**執行結果為:

上述**中的x只進行了一次定義,在新插入乙個p元素前後顯示了不同的內容,即時反應了當前文件中的變化,這讓我想起c#中的linq查詢中有個查詢,是在foreach語句時才執行,也是能即時反應當前的變化。

為什麼說這是危險的呢。

因為比如說:

abc

de這是一段需要移除文件中所有的p標籤的。可是因為x是動態的,所以在移除第乙個時,x就更新了,x.length就減小1,此時i變成了1,但是文件中剩餘的p標籤中的首個此時應該是x[0],於是就沒法刪除它了,同理,第二次刪除後,如果p標籤很多,那麼x[0],x[1]就沒法刪除了。誰讓x那麼即時的反應了當前的變化呢,有個解決方案如下:

abc

de

方法會把節點x[i]從當前的位置剪下到waitingroom中,也就相當於刪除。當刪除後,i不變化,當前節點不應該刪除時才i++。這樣就可以有效的刪除所有帶rel="removed"的元素了

JavaScript動態增加節點和刪除節點

其實html就是類似於xml,曾經w3c希望使用xml替代html,這就是說明,html和xml還是有一定的共同特點 的,所以說,對於xml,我們有解析和動態增加或者減少節點的功能,這個如果用在html上面,那就是能動態的增加 一些按鈕,超連結等等的html元素,這樣的網頁動態效果會更好,下面我們來...

javascript的動態this與動態繫結

乙個簡單的例子 1.window.name window 2.varrun function 5.run window.name window var run function run 執行 這裡你不能說run是作為window的乙個屬性而存在,但它的確是被window屬性呼叫了。實質上大多數暴露在...

ruby中和javascript中,動態方法的建立

class klass def hello args hello args.join endend k klass.new k.send hello,gentle readers hello gentle readers 總之就是send後面加引數 var str a,b,c,d var arr s...