使用jQuery获取给定XML元素的类型?

时间:2011-06-23 01:10:55

标签: jquery xml xml-parsing

如何使用jQuery计算出给定XML元素的类型?

例如,如果我想要第二个孩子的类型:

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) {
   ...
} 

1 个答案:

答案 0 :(得分:3)

尝试在元素上使用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()确保将其作为您正在测试的小写字母发送给您。