Ответ 1
var $siblings = $('.c3').nextUntil('.c6');
Как получить элементы между двумя другими элементами.
Как будто у меня было:
<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
.
Спасибо.
var $siblings = $('.c3').nextUntil('.c6');
Вы можете сначала проверить, находятся ли элементы в правильном порядке, иначе 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;
};
Если он используется только для стилизации, и вы не хотите использовать Script, вы можете сделать это именно так.
позволяет сказать, что вы хотите стилить элементы между .c3
и .c6
.c3 ~ div
{
/*special styling*/
}
div, .c6 ~ div
{
/*normal styling*/
}
вы можете увидеть его в действии Здесь
Вы также можете попробовать следующее:
var selected_elems = $("div").slice(2,6);
slice()
: уменьшите набор согласованных элементов до подмножества, заданного диапазоном индексов.
Документация: http://api.jquery.com/slice/