jQuery选择器:选择两个元素,以及它们之间的所有元素

时间:2010-04-23 12:01:49

标签: jquery jquery-selectors

我在UL内部有一堆LI,每个都有一个唯一的ID。

给定两个ID,选择两个相应LI,之间的所有LI的最佳方式是什么?

谢谢!

3 个答案:

答案 0 :(得分:43)

你可以这样做:

$('#id').nextUntil('#id2').andSelf().add('#id2')

重要的是要注意.nextUntil() 包含它要去的元素,它会停止前面的元素。要添加该元素,您需要在最后调用.add(selector)

您还需要.andSelf()来包含第一个元素

2017年8月更新

jQuery方法.andSelf()现在在jQuery 1.8+中已被弃用,而是使用.addBack()来添加第一个选择。此外,如果最后一个元素(#id2)感知选择中的第一个元素(#id1),则可以使用.prevUntil()。比较两个元素的.index()以确定它们在文档中的顺序。

答案 1 :(得分:18)

http://api.jquery.com/nextUntil/

  

给定一个表示一组DOM元素的选择器表达式,.nextUntil()方法搜索DOM树中这些元素的后继,当它到达与方法的参数匹配的元素时停止。返回的新jQuery对象包含以下所有兄弟姐妹,但不包括.nextUntil()参数匹配的兄弟姐妹。

     

如果选择器不匹配或未提供,则将选择以下所有兄弟姐妹;在这些情况下,它选择的元素与.nextAll()方法在没有提供过滤器选择器时所做的相同。

     

从jQuery 1.6开始,可以将DOM节点或jQuery对象(而不是选择器)传递给.nextUntil()方法。

     

该方法可选择接受第二个参数的选择器表达式。如果提供了这个参数,那么将通过测试它们是否匹配来过滤元素...

答案 2 :(得分:-7)

选择UL之间的所有LI

 $(document).ready(function(){
            $("li[ID*=ids]").css("bacground-color","red");// contian common world ex ids1
    });