2012-02-20 7 views
1

E4Xでは、要素に特定の属性があるかどうかをテストする方法はわかっていますが、要素にテキストノードがあるかどうかをテストするにはどうすればよいですか?JavaScript + 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

属性や子供のいない要素のためのhasSimpleContent方法を使用します。

x.quux.hasSimpleContent() 

は、テキストノードを集約するためのタグと空白を削除する正規表現を使用します。

Boolean(x.toString().replace(/<.*?\>/g,"").replace(/\W/g,"").length) 
関連する問題