JavaScript + E4X:如何测试元素是否有文本节点?

时间:2012-02-20 16:35:15

标签: javascript xml parsing text e4x

在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

1 个答案:

答案 0 :(得分:1)

对没有属性或子项的元素使用hasSimpleContent方法:

x.quux.hasSimpleContent()

使用RegExp删除标记和空格以聚合文本节点:

Boolean(x.toString().replace(/<.*?\>/g,"").replace(/\W/g,"").length)