JavaScript + E4X: как проверить, есть ли у элемента текстовые узлы? - PullRequest
1 голос
/ 20 февраля 2012

В 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 Ответ

1 голос
/ 25 июля 2012

Используйте метод hasSimpleContent для элементов без атрибутов или дочерних элементов:

x.quux.hasSimpleContent()

Используйте RegExp для удаления тегов и пробелов для агрегации текстовых узлов:

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