javascript - jQuery按钮点击,获取带有class的div

标签 javascript jquery html css

我目前正在使用 jQuery 编写客户端脚本,并尝试使其尽可能通用。

我正在寻找一种通过单击按钮来选择具有“.targets”类的 div 的方法。

我的标记看起来像这样:

<form>
    <!-- Products section -->
    <div class="products">
        <div class="container">
            <div class="form-group">
                <div class="col-md-12">
                    <button type="button" class="btn-add">Add</button>
                </div>
            </div>
            <div class="targets">
                ...
            </div>
        </div>
    </div>
    <!-- Resources section, slightly different markup -->
    <div class="resources">
        <div class="container">
            <br/>
            <div class="form-group">
                <button type="button" class="btn-add">Add</button>
            </div>
            <br/>
            <div class="targets">
                ...
            </div>
        </div>
    </div>
</form>

我的 jQuery 看起来像这样:

$("form").on("click", "btn-add", function(e){
   var targets = $(this).parent().parent().next();
});

这个解决方案“以某种方式”起作用,但是如果标记发生变化怎么办?

jQuery 中有没有一种方法可以在单击按钮时选择最接近的带有“.targets”类的 div?

谢谢:)

最佳答案

使用(this).closest(".container").find(".targets");

这将选择与 container 类最接近的元素,并在其中搜索具有 targets 类的元素

$("form").on("click", ".btn-add", function(e){
   var targets = $(this).closest(".container").find(".targets");
   console.log($(targets).text().trim())
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<form>
    <!-- Products section -->
    <div class="products">
        <div class="container">
            <div class="form-group">
                <div class="col-md-12">
                    <button type="button" class="btn-add">Add</button>
                </div>
            </div>
            <div class="targets">
                target1
            </div>
        </div>
    </div>
    <!-- Resources section, slightly different markup -->
    <div class="resources">
        <div class="container">
            <br/>
            <div class="form-group">
                <button type="button" class="btn-add">Add</button>
            </div>
            <br/>
            <div class="targets">
                target2
            </div>
        </div>
    </div>
</form>

关于javascript - jQuery按钮点击,获取带有class的div,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44152514/

相关文章:

javascript - Javascript 中的视差问题

javascript - GreaseMonkey 中的 jQuery data() 函数

javascript - 使用 jQuery 自动调整图像大小以适应容器

jquery - 查找隐藏父级中可见的子级

html - CSS 网格 : Pushing a div to the first column and making it span 100% on hover

javascript - 在保存和下载为 Sql Server 报告的 pdf 时重命名文件?

javascript - 我是否正确使用了回调函数?

javascript - 用于自动完成和下拉功能的 jQuery 插件?

javascript - 如何找到 .each() 中的最后一项?

javascript - 为什么它打印 [object] 作为警报