阿波羅的戰(zhàn)車(chē)
2020-02-02 13:56:01
想象一下,我有以下類(lèi)似的東西(從http://viralpatel.net/blogs/jquery-get-text-element-without-child-element/修改)<div id="foo"> first <div id="bar1"> jumps over a lazy dog! </div> second <div id="bar2"> another jumps over a lazy dog! </div> third</div>如何在不影響任何子元素的情況下從DOM中僅刪除(僅文本)“第一”,“第二”和“第三”。
3 回答

慕森王
TA貢獻(xiàn)1777條經(jīng)驗(yàn) 獲得超3個(gè)贊
如果要?jiǎng)h除所有子文本節(jié)點(diǎn),則可以使用.contents(),然后.filter()將匹配集減少為僅文本節(jié)點(diǎn):
$("#foo").contents().filter(function () {
return this.nodeType === 3;
}).remove();
這是一個(gè)有效的例子。
注意:這將保留子元素上所有現(xiàn)有的事件處理程序,使用答案.html()不會(huì)做(因?yàn)閺腄OM中刪除了這些元素并重新添加了這些元素)。
注2:一些鏈接的問(wèn)題中的答案顯示的代碼與我的答案中的代碼相似,但它們使用nodeType常量(例如return this.nodeType === Node.TEXT_NODE)。這是不好的做法,因?yàn)榈陀诎姹?的IE無(wú)法實(shí)現(xiàn)該Node屬性。使用整數(shù)(可以在DOM 2級(jí)規(guī)范中找到)更安全。
添加回答
舉報(bào)
0/150
提交
取消