如何在两个其他元素之间获取元素?
就像我有:
<div class="c1"></div>
<div class="c2"></div>
<div class="c3"></div>
<div class="c4"></div>
<div class="c5"></div>
<div class="c6"></div>
<div class="c7"></div>
我希望获得div.c3
和div.c6
之间的元素。
答案 0 :(得分:24)
var $siblings = $('.c3').nextUntil('.c6');
答案 1 :(得分:2)
您可能需要首先检查元素是否按正确顺序排列,然后nextUntil将返回意外的元素集。
/**
* Returns an array of sibling elements between `from` and `to` including `from` and `to`
*/
function getElementsInBetween (from, to) {
var range = [];
if (from.index() > to.index()) { //ensure that 'from' is before 'to'
from = [to, to = from][0]; //swapping from and to
}
if (from.is(to)) {
range = [from];
} else {
range = from.nextUntil(to).add(from).add(to);
range = $.makeArray(range);
}
return range;
};
答案 2 :(得分:0)
如果仅用于样式目的,并且您不想使用脚本,则可以这样做..
假设您要在.c3
和.c6
.c3 ~ div
{
/*special styling*/
}
div, .c6 ~ div
{
/*normal styling*/
}
您可以在行动Here
中看到它答案 3 :(得分:0)
您还可以尝试以下方法:
var selected_elems = $("div").slice(2,6);
slice()
:将匹配元素集减少到由一系列索引指定的子集。