jquery的after與insertAfter的區別

jquery的dom操作方法中,包括了after與insertAfter,這兩個方法名字相近,所實現的功能從名字中不容易分辨,所以在經過試驗後撰文一篇以加深記憶。

測試代碼如下:

<html>
<head>
<meta charset=”utf-8″>
<title>測試insertAfter與after的區別</title>
</head>
<body>
<ul>
<li class=”first”>first</li>
<li class=”middle”>middle</li>
<li class=”last”>last</li>
</ul>
</body>
</html>

自然狀態下顯示是這樣的:

 

1

 

 

 

 

添加腳本:$(‘.first’).insertAfter($(‘.last’));

則會把first移到last後面去,變成了這樣:

2

 

 

 

 

如果把insertAfter方法換爲after,效果則爲:

3

 

 

 

從上述對比可以看出,其實這兩個方法的差別就像主語跟賓語的差別一樣,是主與從的問題。

after方法,是把參數元素移到調用方法的元素的後面,而insertAfter方法則恰恰相反,是把調用方法的元素插入到參數元素的後面。

另外要注意的是,當要用這兩個方法在dom樹中添加新元素時,如”<li>new</li>”,這樣的html字符串不能出現在after方法的調用主體或insertAfter的參數中,因爲這樣一來,jquery不知道要把新元素放到哪裏去,反而會導致要相關的原有元素丟失。

引自:黑天鵝工作室

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章