在前端開發時,我們往往需要在頁面某個地方插入一個元素或者刪除元素,這種插入元素、刪除元素的操作就是通過DOM來實現的。
對jQuery有過些許了解的人都知道,jQuery對象和DOM對象是兩個不同的概念。對於這兩者的區別,我們在jQuery進階再給大家詳細探討。
在jQuery中,對於創建節點,我們都是先用“$()方法”來創建一個節點,然後再通過append()、before()等方法把新創建的節點插入現有的節點中。
語法:
var e = $(html); $().append(e);
說明:
$(html)中的html指的是“HTML標簽字符串”。
在jQuery中,常見插入節點的方法共有4組:
這4組插入節點的方法都有所不同,其中(1)和(2)是“內部插入節點”,(3)和(4)是“外部插入節點”。
在jQuery中,對於刪除節點,我們有3種方法:
當我們刪除節點後,如果希望重新使用該節點,並且希望被刪除的節點在重新使用後還能保留原來綁定的事件,那我們應該使用detach()而不是remove()。
remove()和detach()這2個方法刪除節點時,會將自身節點以及後代節點一並刪除。但是empty()方法僅僅刪除後代節點,而會保留自身節點。
在jQuery中,如果我們想要復制某個節點,可以使用clone()方法。
語法:
$(A).clone()
說明:
其中clone()方法有一個布爾參數,默認值為false。
$(A).clone()表示僅僅將A節點復制,但不復制A節點所綁定的事件。
$(A).clone(true)表示將A節點復制,並且復制A節點所綁定的事件。
在jQuery中,如果我們想要替換節點,有2種方法:
replaceWith()跟replaceAll()相似,“作用”都是用來替換節點的。不過這兩者的“使用方式”是顛倒操作。
$(A).replaceWith(B)表示用B來替換A。$(A).replaceAll(B)表示用A來替換B。
在jQuery中,如果我們想要將某個節點用其他標簽包裹起來,共有3種方法:
wrapAll()跟wrap()這兩種方法的作用是不等價的。wrap()方法是將所有元素進行單獨的包裹,但是wrapAll()會將所有匹配的元素用一個元素來包裹。
在jQuery中,我們可以使用each()方法來輕松實現元素的遍歷操作。
語法:
$().each(callback)
說明:
參數callback是一個function函數。該函數可以接受一個形參index,此形參為遍歷元素的序號(從0開始)。如果需要訪問元素中的屬性,可以借助形參index,然後配合this關鍵字來實現元素屬性的獲取和設置。
each()方法完整語法如下:
$().each(function(index){ …… })
【後話】:關於jQuery DOM操作,其實用途非常廣。這一章我們只是給大家簡單介紹了一下語法,對於這些操作如何在實際開發中應用,大家可以關注我們未來上線的jQuery進階教程。