jquery - 在当前集合中添加下一个项目和下一个项目之后的项目

标签 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>

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

最佳答案

根据您的情况,您可以使用 nextUntil()addBack() :

var elements = $("#elem2").nextUntil("#elem3").addBack();

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

编辑:我在另一个答案中看到了关于此解决方案被硬编码的合理担忧。确实如此,但它可以轻松修改,因此您只需指定第一个元素:

var elements = $("#elem2").nextUntil(":not(.helperBtn)").addBack();

关于jquery - 在当前集合中添加下一个项目和下一个项目之后的项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19090184/

相关文章:

javascript - 选择某种类型的最接近的元素 - JQuery

jquery - 如何使用jquery循环遍历表行内的所有表单元素?

jquery - 通过 jQuery 调用所有标题(可能还有 alt)属性 - 并在悬停时对它们进行 CSS 处理?

GWT 中的 jquery read() 等效项

javascript - 如何使用 React 同步渲染组件(或渲染到字符串)

javascript - 如何从页面 Controller 访问指令中的dom元素

javascript - 使用 Javascript 获取 Cookie

javascript - 打开前选择2 scrollIntoView

c# - jquery Ajax 响应文本 "There was an error processing the request"

javascript - 使用 jquery 突出显示事件链接