这里我想隐藏msg_wrap div,它是最接近(之后)点击的msg_head类。我的jquery:
$(document).on("click", ".msg_head", function() {
$(this).closest('.msg_wrap').slideToggle('slow');
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="msg_head" id="c_name_msgHead">
<div class="close">x</div>
</div>
<div class="msg_wrap">wrap
</div>
<div class="msg_head" id="c_name_msgHead">
<div class="close">x</div>
</div>
<div class="msg_wrap">wrap
</div>
但它不起作用。有什么想法吗?
答案 0 :(得分:3)
.closest()
查找祖先树:
描述:对于集合中的每个元素,通过测试元素本身并遍历DOM树中的祖先来获取与选择器匹配的第一个元素。
您需要的是.next()
:
描述:获取匹配元素集中每个元素的紧随其后的兄弟。如果提供了选择器,则仅当它与该选择器匹配时,它才会检索下一个兄弟。
$(document).on("click", ".msg_head", function() {
$(this).next('.msg_wrap').slideToggle('slow');
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="msg_head" id="c_name_msgHead">
<div class="close">x</div>
</div>
<div class="msg_wrap">wrap
</div>
<div class="msg_head" id="c_name_msgHead">
<div class="close">x</div>
</div>
<div class="msg_wrap">wrap
</div>
&#13;