Javascript 获取子元素之前的文本内容和子元素之后的文本内容?
在下面的标记中,我知道我可以使用textEl.textContent获得文本元素的全文内容。但是,如果我想得到textContent中位于元素子元素之前的部分,而您和textContent在yes之后作为两个单独的字符串,我该怎么做呢Javascript 获取子元素之前的文本内容和子元素之后的文本内容?,javascript,xml,Javascript,Xml,在下面的标记中,我知道我可以使用textEl.textContent获得文本元素的全文内容。但是,如果我想得到textContent中位于元素子元素之前的部分,而您和textContent在yes之后作为两个单独的字符串,我该怎么做呢 <?xml version="1.0" standalone="no"?> <g font-family="Verdana" font-size="45" > <text x="200" y="150" fill="blu
<?xml version="1.0" standalone="no"?>
<g font-family="Verdana" font-size="45" >
<text x="200" y="150" fill="blue" >
But you
<tspan dx="2em" dy="-50" font-weight="bold" fill="red" >
are
</tspan>
<tspan dy="100">
a peach!
</tspan>
yes
</text>
</g>
</svg>
使用textEl.childNodes,它是所有子节点的数组,用于textEl,包括元素和文本内容。如下所示。以相关节点类型为例 常量xmlString=` 但是你 是 桃子! 对 ` let parser=new DOMParser 让doc=parser.parseFromStringxmlString,application/xml 常量cn=[…doc.querySelector[fill=blue].childNodes]; //减少 让node3=cn.reduceac,node=>{ 如果node.nodeType==3{ const txt=node.textContent.trim; 如果txt!==acc.pushtxt; } 返回acc; }, [] console.lognode3 //或过滤器加映射 node3=cn.filternode=>node.nodeType==3&&node.textContent.trim!== .mapnode=>node.textContent.trim console.lognode3