在当前集合旁边添加下一个项目和项目

pei*_*ker 3 jquery dom

想象一下以下HTML

<div id="outer">
    <div id="elem1"></div>
    <div class="helperBtn"></div>
    <div class="helperBtn"></div>

    <div id="elem2"></div>
    <div class="helperBtn"></div>
    <div class="helperBtn"></div>

    <div id="elem3"></div>
    <div class="helperBtn"></div>
    <div class="helperBtn"></div>
</div>
Run Code Online (Sandbox Code Playgroud)

如何选择elem2并且两者都跟随div.helperBtn
我尝试过这样的事情:$('#elem2').add(':next')但无法获得任何有效的解决方案.
有任何想法吗?

Fré*_*idi 8

在您的情况下,您可以将nextUntil()addBack()一起使用:

var elements = $("#elem2").nextUntil("#elem3").addBack();
Run Code Online (Sandbox Code Playgroud)

以上将匹配#elem2和之间的所有元素#elem3,然后添加#elem2回集合.生成的jQuery对象将包含三个元素.

编辑:我在另一个答案中看到合法的关注,这个解决方案是硬编码的.这是真的,但它可以很容易地修改,所以你只需要指定第一个元素:

var elements = $("#elem2").nextUntil(":not(.helperBtn)").addBack();
Run Code Online (Sandbox Code Playgroud)