Javascript 如何在不影响子元素的情况下删除文本?

Javascript 如何在不影响子元素的情况下删除文本?,javascript,jquery,html,selector,Javascript,Jquery,Html,Selector,我有一个带子div的div,还有一些文本。使用jQuery/JS,我希望不使用子div,而是删除文本 留着这个 留着这个 一些无法预测的随机文本(将被删除) 留着这个 您可以使用查找作为根元素直接子元素的所有文本节点并将其删除 函数removeChildTextNodes(根) { var treeWalker=document.createTreeWalker(root,NodeFilter.SHOW_ALL{ acceptNode:函数(节点){if(node.nodeType==3)返

我有一个带子div的div,还有一些文本。使用jQuery/JS,我希望不使用子div,而是删除文本


留着这个
留着这个
一些无法预测的随机文本(将被删除)
留着这个
您可以使用查找作为根元素直接子元素的所有文本节点并将其删除

函数removeChildTextNodes(根)
{
var treeWalker=document.createTreeWalker(root,NodeFilter.SHOW_ALL{
acceptNode:函数(节点){if(node.nodeType==3)返回NodeFilter.FILTER\u ACCEPT},
},对);
var currentNode=treeWalker.firstChild();
while(当前节点)
{
var removedNode=treeWalker.currentNode;
currentNode=treeWalker.nextNode()
removedNode.remove();
}
}
var root=document.querySelector('#parent');
移除ChildTextNodes(根节点)

一些无法预测的随机文本(将被删除)
留着这个
一些无法预测的随机文本(将被删除)
留着这个
一些无法预测的随机文本(待删除)
留着这个
使用jQuery的解决方案

$(“.parent”)
//返回直系后代。这还返回文本节点,而不是子节点()
.contents()
//仅目标文本节点
.filter(函数(){
返回this.nodeType===Node.TEXT\u节点;
}).remove()

留着这个
留着这个
一些无法预测的随机文本(将被删除)
留着这个
其他位置的一些随机文本
留着这个
留着这个
留着这个
更多随机文本

Whit
Javascript
您只需使用
id=parent
获取元素的所有子元素,然后将这些子元素遍历到具有以下内容的子元素:

let childs=document.getElementById(“父”).childNodes;
forEach(c=>c.nodeType==Node.TEXT\u Node&&c.remove())

留着这个
留着这个
一些无法预测的随机文本(将被删除)
留着这个

如下面的评论所述,我无法修改DOM。我只能注入JS。您也可以使用
c.nodeType==3
(第一个示例)或
this.nodeType==3
(第二个示例)。:-)