【问题标题】:jquery how to access the an xml node by index?jquery如何通过索引访问一个xml节点?
【发布时间】:2010-05-21 05:15:34
【问题描述】:

说我有一个像这样从服务器返回的 xml:

<persons>
        <person>
               <firstname>Jon</firstname>
        </person>
        <person>
               <firstname>Jack</firstname>
        </person>
        <person>
               <firstname>James</firstname>
        </person>
</persons>

如果我想访问第 3 个名字节点(动态传递并存储在 i 中,这里假设为 3),我该怎么做?我的奇怪尝试如下:

var i=3;
$(xml).find('firstname').each(function(idx){
       if (idx==i) alert($(this).text());
});

它确实为我提供了正确的内容......但我感觉不对,尤其是循环部分。基本上我正在使用 .each() 遍历整个树!还有比这更好的方法吗?可以直接将我带到第 n 个节点的东西,例如:

alert( $(xml).find('firstname')[idx].text() ); // where idx=n

我是 jquery 新手,所以请原谅我的 jquery 编码方法。

【问题讨论】:

    标签: jquery xml


    【解决方案1】:

    .eq()


    分类:遍历>过滤

    .eq(索引)

    返回:jQuery

    说明:将匹配元素集减少到指定索引处的元素。

    添加的版本:1.1.2。

    索引
    一个整数,指示元素从 0 开始的位置。

    http://api.jquery.com/eq/

    【讨论】:

    • 我现在试了一下,效果很好。它更优雅!我每天都越来越喜欢 jQuery。感谢您为我指出正确的资源。
    【解决方案2】:

    这是我最终到达的地方。如果您认为它可以更好,请告诉我!

    var i=3;
    alert($(xml).find('firstname').eq(i).text());
    

    谢谢你,罗伯特!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-04-12
      • 1970-01-01
      • 2013-03-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多