Получить тип данного элемента XML с помощью jQuery?

Как я могу определить тип данного XML-элемента с помощью jQuery?

Например, если мне нужен тип второго ребенка:

XML:

<xml>
  <a>a element</a>
  <b>b element</b>
  <c>c element</c>
</xml>

JS:

var node = $(xml).eq(2);
var nodeType = getNodeType(node);
if (nodeType == 'b') {
   alert('GOT IT');
}


function getNodeType($node) {
   ...
} 

person Yarin    schedule 23.06.2011    source источник
comment
Я думаю, что пример здесь должен помочь: http://api.jquery.com/children/   -  person Tieson T.    schedule 23.06.2011


Ответы (1)


Попробуйте использовать nodeName для элемента (не для объекта jQuery).

Пример: http://jsfiddle.net/2cSpq/

var xml = "<xml><a>a element</a><b>b element</b><c>c element</c></xml>";

var node = $(xml).children().eq(1);
var nodeType = alert(getNodeType(node));
if (nodeType == 'b') {
   alert('GOT IT');
}


function getNodeType($node) {
   return $node[0].nodeName.toLowerCase();  <--- right here
} 

Я также использовал children()[docs] метод для нацеливания на вложенные элементы, что сделает элемент b с индексом 1, а не 2.

[0] извлекает узел из объекта jQuery, .nodeName получает имя узла, а .toLowerCase() гарантирует, что оно будет отправлено вам как строчная буква, которую вы тестируете.

person user113716    schedule 23.06.2011