获得2个元素之间的兄弟姐妹

时间:2011-07-25 13:43:29

标签: jquery

如何在两个其他元素之间获取元素?

就像我有:

<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.c3div.c6之间的元素。

4 个答案:

答案 0 :(得分:24)

使用nextUntil [docs]

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():将匹配元素集减少到由一系列索引指定的子集。

文档:http://api.jquery.com/slice/