3 回答

TA貢獻1834條經驗 獲得超8個贊
您可以輕松過濾直接子節點中的文本節點:
var container = document.querySelector('.child1');
for(var node of container.childNodes) {
if (node.nodeType === Node.TEXT_NODE) {
container.removeChild(node);
}
}
<div class="parent">
<div class="child1">
THIS WILL DISAPPEAR
THIS WILL DISAPPEAR
<div class="child-of-child1">
A lot of elements here
</div>
THIS WILL DISAPPEAR
</div>
</div>

TA貢獻1817條經驗 獲得超14個贊
var cNodes = document.querySelector('.child1').childNodes;
if(cNodes.length>0)
cNodes[cNodes.length-1].nodeValue="";
<div class="parent">
<div class="child1">
<div class="child-of-child1">
A lot of elements here
</div>
TEXT I LIKE TO REMOVE
</div>
</div>
Hello

TA貢獻1788條經驗 獲得超4個贊
您可以通過它前面的元素來定位它,然后獲取它nextSibling
:
const?textNode?=?document.querySelector(".parent?.child1?.child-of-child1").nextSibling; textNode.parentNode.removeChild(textNode);
實例:
setTimeout(() => {
? ? const textNode = document.querySelector(".parent .child1 .child-of-child1").nextSibling;
? ? textNode.parentNode.removeChild(textNode);
}, 800);
<div class="parent">
? ? <div class="child1">
? ? ? ? <div class="child-of-child1">
? ? ? ? ? ? A lot of elements here
? ? ? ? </div>
? ? ? ? TEXT I LIKE TO REMOVE
? ? </div>
</div>
- 3 回答
- 0 關注
- 166 瀏覽
添加回答
舉報