3

我使用$xml = $(xmldoc). 然后我通过过滤它$xml.filter('id="something"').index()在过滤后的 xml 上使用时,jQuery 返回原始列表中的索引,而不是过滤后的列表中的索引。

例子:

<xmlroot>
  <xmlnode id="1" color="blue" />
  <xmlnode id="2" color="orange" />
  <xmlnode id="3" color="blue" />
  <xmlnode id="4" color="orange" />
  <xmlnode id="5" color="blue" />
</xmlroot>

    vObject = $xml.filter('[color="orange"]'); //vObject should just receive the xmlnodes 2 and 4
    vResult = vObject.filter('[id="4"]').index();

vResult 将始终为 3,但它应该为 1。

我知道这个 jQuery 行为是设计使然,但我需要一个解决方案来用过滤的 xml 填充 vObject,而不是用所有的 xml。我已经尝试了一整夜,但我没有想法。

如果这里的一位专家可以提供帮助,将非常高兴。谢谢!

4

1 回答 1

2

如果要获取 jQuery 集合中元素的索引,则应将元素传递给index方法:

var vResult = vObject.index(vObject.filter('[id="4"]')); // 1    
           // vObject.index(vObject.filter('[id="2"]')); // 0
           // vObject.index(vObject.filter('[id="3"]')); // -1

http://jsfiddle.net/C9Nyg/

于 2012-12-22T05:18:35.897 回答