如何检查html元素是否包含它自己的文本(包含textNode)

art*_*tgb 2 html javascript dom

我将检查html元素是否包含它自己的文本.

例子是
<div>Text<tag></tag>Text</div><div>Text</div>.

有些不合适的事情是 <div><tag></tag><p></p></div>

我的代码片段是

flag = false;
for ( var j = 0; j < item.childNodes.length; j ++){
    if(item.childNodes[j].tagName == ""){
        flag = true;
    }
}
Run Code Online (Sandbox Code Playgroud)

但它没有用,有人可以帮助我吗?

我所期待的是
<div>Text<tag></tag>Text</div>儿童节点Text,<tag></tag>Text.但事实并非如此.

jab*_*oja 6

如果要检测文本节点子节点,请检查nodeType是否为TEXT_NODE,而不是tagName是否为空字符串:

var flag = Array.from(item.childNodes).some(child => child.nodeType === child.TEXT_NODE);
Run Code Online (Sandbox Code Playgroud)