我目前正在使用jQuery中的客户端脚本,并且我试图尽可能地使其成为通用的。
我正在寻找一种方法来选择一个div" .targets"点击一下按钮。
我的标记看起来像这样:
<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();
});
这个解决方案可以&#34;某种程度上&#34;,但是如果标记改变了怎么办?
jQuery中是否有一种方法可以选择最近的div与类#34; .targets&#34;点击按钮?
谢谢:)
答案 0 :(得分:2)
使用(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>
答案 1 :(得分:0)
如果您知道它们将始终位于.products
元素内,您可以执行以下操作:
$(this).closest('.products').find('.targets');
jQuery遍历方法的有用指南:http://api.jquery.com/category/traversing/
答案 2 :(得分:0)
答案 3 :(得分:0)
试试这个:
$(this).closest('.container').find('.targets')