e4x:如何最好地检查属性的存在?

时间:2009-09-17 17:52:26

标签: javascript e4x

我知道我可以使用length()方法:

>x = <a attr1='33' />
>x.@attr1
33
>x.@attr1.length()
1
>x.@attr2.length()
0

所以我可以使用

if (x.@someattr.length() > 0)
{
    .... do something ....
}

但是有更合适的方法吗?

2 个答案:

答案 0 :(得分:1)

没关系,我通过浏览Ecma-357 standard找到答案,特别是XML.prototype。*和XMLList.prototype。* 13.4和13.5节。

这是hasOwnProperty()方法:

js>x = <a attr1='33' ><item>gumball!</item></a>
<a attr1="33">
  <item>gumball!</item>
</a>
js>x.@attr1
33
js>x.hasOwnProperty('@attr1');
true
js>x.hasOwnProperty('@attr2');
false
js>x.hasOwnProperty('item');
true
js>x.hasOwnProperty('mongoose');
false

答案 1 :(得分:0)

最简单的方法:

(@attr1 in theXML)

如果id属性存在,则返回true,否则返回false。