Javascript 如何检查元素';什么是直接文本内容?

Javascript 如何检查元素';什么是直接文本内容?,javascript,html,innertext,Javascript,Html,Innertext,假设我有这样一个元素结构 <div> This is direct text <div> This is text nested in a child element </div> </div> 这是直接文本 这是嵌套在子元素中的文本 有没有一种方法可以检查父div的直接文本内容而不检查内部子级的内容 如果我有一个这样的结构 <div id="uppermost-div"> <div&g

假设我有这样一个元素结构

<div>
   This is direct text

   <div>
       This is text nested in a child element
   </div>
</div>

这是直接文本
这是嵌套在子元素中的文本
有没有一种方法可以检查父div的直接文本内容而不检查内部子级的内容

如果我有一个这样的结构

<div id="uppermost-div">
  <div>
     This is direct text

     <div>
       This is text nested in a child element
     </div>
   </div>
</div>

这是直接文本
这是嵌套在子元素中的文本
我检查了
#最上面的div
的这个直接文本内容,我希望它是null或空字符串之类的


有没有一种方法可以完成HTML/Javascript中的值检查?

这应该适合您:

//以某种方式获取父元素,也可以使用
//.getElementById()或任何其他DOM方法
var parentElement=document.querySelector('#myDiv');
//以字符串形式返回文本内容
[].reduce.call(parentElement.childNodes,函数(a,b){返回a+(b.nodeType==3?b.textContent:”;},”);
来源:

见评论

//制作父级的深度副本
让tempElement=document.getElementById(“最上面的div”).cloneNode(true);
//在副本中的元素上循环
tempElement.querySelectorAll(“*”).forEach(函数(el){
el.remove();//删除子对象
});
//记录剩下的内容
console.log(tempElement.textContent)

这是直接文本
这是嵌套在子元素中的文本

您现在使用的是什么代码?我链接到的重复问题询问了关于jQuery的问题,但也有一些普通的JS答案。