e4x: как лучше всего проверить наличие атрибута? - PullRequest
0 голосов
/ 17 сентября 2009

Я знаю, что могу сделать это с помощью метода length ():

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

чтобы я мог использовать

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

а есть ли более подходящий способ?

Ответы [ 2 ]

1 голос
/ 17 сентября 2009

Неважно, я нашел ответ, просматривая стандарт Ecma-357 , в частности 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
0 голосов
/ 26 февраля 2013

Самый простой способ:

(@attr1 in theXML)

это вернет true, если id attrtibute существует, и false в противном случае.

...