Подтвердить что ты не робот

Получить братьев и сестер между двумя элементами

Как получить элементы между двумя другими элементами.

Как будто у меня было:

<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.

Спасибо.

4b9b3361

Ответ 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;
    };

Ответ 3

Если он используется только для стилизации, и вы не хотите использовать Script, вы можете сделать это именно так.

позволяет сказать, что вы хотите стилить элементы между .c3 и .c6

.c3 ~ div
{
    /*special styling*/
}
div, .c6 ~ div
{
    /*normal styling*/
}

вы можете увидеть его в действии Здесь

Ответ 4

Вы также можете попробовать следующее:

var selected_elems = $("div").slice(2,6);

slice(): уменьшите набор согласованных элементов до подмножества, заданного диапазоном индексов.

Документация: http://api.jquery.com/slice/