代码之家  ›  专栏  ›  技术社区  ›  DS.

jquery如何通过索引访问一个XML节点?

  •  3
  • DS.  · 技术社区  · 15 年前

    假设我从服务器返回了这样的XML:

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

    如果我想访问第三个firstname节点(动态传递并存储在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编码方法。

    2 回复  |  直到 15 年前
        1
  •  4
  •   Robert Harvey    15 年前

    e()


    类别:遍历筛选

    情商(指数)

    返回:jQuery

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

    增加版本:1.1.2。

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

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

        2
  •  1
  •   DS.    15 年前

    这是我最后到达的地方。如果你认为会更好,请告诉我!

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

    谢谢你,罗伯特!