在E4X中,我知道如何测试元素是否具有特定属性,但如何测试元素是否具有文本节点?
js>x = <foo><bar /><baz attr1="123" /><quux>some random text</quux></foo>
<foo>
<bar/>
<baz attr1="123"/>
<quux>some random text</quux>
</foo>
js>'@attr1' in x.baz
true
js>'@attr1' in x.quux
false
答案 0 :(得分:1)
对没有属性或子项的元素使用hasSimpleContent方法:
x.quux.hasSimpleContent()
使用RegExp删除标记和空格以聚合文本节点:
Boolean(x.toString().replace(/<.*?\>/g,"").replace(/\W/g,"").length)