Javascript 提取节点的文本,忽略子节点

Javascript 提取节点的文本,忽略子节点,javascript,Javascript,给出这样一个简单的结构: <td><span>Text1</span></td> <td><span>Text2</span></td> <td><span>Text3</span></td> <td><span><a href='#'>Link</a>Text4</span></td&g

给出这样一个简单的结构:

<td><span>Text1</span></td>
<td><span>Text2</span></td>
<td><span>Text3</span></td>
<td><span><a href='#'>Link</a>Text4</span></td>
每x的输出
但这给了我
链接
显然

使用
.innerText
,它将为您获取文本和所有嵌套文本,并将
div
替换为
td
对于您的示例,我只是添加它来显示结果

const tags=document.querySelectorAll('div>span');
tags.forEach(tag=>{
const nodes=tag.childNodes;
nodes.forEach(node=>{
如果(node.nodeType==node.TEXT\u node){
console.log(node.nodeValue);
}
});
});
Text1
文本2
文本3

Text4
但对于最后一个,它给了我
LinkText4
,我实际上只想要
Text4
@PrimuS啊,我想你也需要嵌套文本,我已经更新了我的答案,请再次检查
...
x = rows[i].getElementsByTagName("TD")[n].getElementsByTagName('span')[0];
...
Test1
Test2
Test3
<a href='#'>Link</a>Text4
if(x.hasChildNodes()){
    x = rows[i].getElementsByTagName("TD")[n].getElementsByTagName('span')[0].getElementsByTagName('a')[0];
}