我在UL内部有一堆LI,每个都有一个唯一的ID。
给定两个ID,选择两个相应LI,和之间的所有LI的最佳方式是什么?
谢谢!
答案 0 :(得分:43)
你可以这样做:
$('#id').nextUntil('#id2').andSelf().add('#id2')
重要的是要注意.nextUntil()
不包含它要去的元素,它会停止前面的元素。要添加该元素,您需要在最后调用.add(selector)
。
您还需要.andSelf()
来包含第一个元素
2017年8月更新
.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
});