empty 是一種移出子元素的方法,但是與刪除又有點(diǎn)不一樣,因?yàn)樗灰瞥?指定元素中的所有子節(jié)點(diǎn)。
這個(gè)方法不僅移除子元素(和其他后代元素),同樣移除元素里的文本。因?yàn)?,根?jù)說(shuō)明,元素里任何文本字符串都被看做是該元素的子節(jié)點(diǎn)。
如果我們通過(guò)empty方法移除里面div的所有元素,它只是清空內(nèi)部的html代碼,但是標(biāo)記仍然留在DOM中
remove與empty一樣,都是移除元素的方法,但是remove會(huì)將元素自身移除,同時(shí)也會(huì)移除元素內(nèi)部的一切,包括綁定的事件及與該元素相關(guān)的jQuery數(shù)據(jù)。
如果不通過(guò)remove方法刪除這個(gè)節(jié)點(diǎn)其實(shí)也很簡(jiǎn)單,但是同時(shí)需要把事件給銷(xiāo)毀掉,這里是為了防止"內(nèi)存泄漏",所以前端開(kāi)發(fā)者一定要注意,綁了多少事件,不用的時(shí)候一定要記得銷(xiāo)毀
通過(guò)remove方法移除div及其內(nèi)部所有元素,remove內(nèi)部會(huì)自動(dòng)操作事件銷(xiāo)毀方法,所以使用使用起來(lái)非常簡(jiǎn)單
remove表達(dá)式參數(shù):
remove比empty好用的地方就是可以傳遞一個(gè)選擇器表達(dá)式用來(lái)過(guò)濾將被移除的匹配元素集合,可以選擇性的刪除指定的節(jié)點(diǎn)
我們可以通過(guò)$()選擇一組相同的元素,然后通過(guò)remove()傳遞篩選的規(guī)則,從而這樣處理
我們可以通過(guò)類(lèi)似于這樣處理
總結(jié):
empty方法
嚴(yán)格地講,empty()方法并不是刪除節(jié)點(diǎn),而是清空節(jié)點(diǎn),它能清空元素中的所有后代節(jié)點(diǎn)
empty不能刪除自己本身這個(gè)節(jié)點(diǎn)
remove方法
該節(jié)點(diǎn)與該節(jié)點(diǎn)所包含的所有后代節(jié)點(diǎn)將同時(shí)被刪除
提供傳遞一個(gè)篩選的表達(dá)式,刪除指定合集中的元素