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

aid*_*dan 27 jquery jquery-selectors

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

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

谢谢!

Nic*_*ver 44

你可以这样做:

$('#id').nextUntil('#id2').andSelf().add('#id2')
Run Code Online (Sandbox Code Playgroud)

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

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

2017年8月更新

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

  • 只有当#id出现在#id2之前时,这才有效.[更多此处](http://stackoverflow.com/a/19046986/219931) (3认同)

jAn*_*ndy 21

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

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

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

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

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

  • nextUntil 不考虑 OP 要求的第一个和最后一个元素。 (2认同)