JavaScript:检查"处女"元素?

Ood*_*Ood 1 html javascript dom

是否有可能检查一个元素是否只包含JavaScript中的标记(没有属性,没有内容)?

例:

<div></div> -> true
<div id="foo"></div> -> false
<div>bar</div> -> false
Run Code Online (Sandbox Code Playgroud)

rid*_*rid 5

如果在命名变量中包含元素element,则可以检查它具有的属性和子节点的数量.如果这两个都为零,那么您的条件为真.

element.attributes.length === 0 && element.childNodes.length === 0
Run Code Online (Sandbox Code Playgroud)

如果元素包含空格作为子节点,则不会这样.例如:

<div>   </div>
Run Code Online (Sandbox Code Playgroud)

如果条件在这种情况下也需要为真,那么,不是检查子节点,而是可以将元素的内容作为字符串获取,删除内部的所有空格,并检查结果长度是否为零:

element.innerHTML.replace(/\s+/, '').length === 0
Run Code Online (Sandbox Code Playgroud)