我无法让jQuery正常工作。我有这个HTML结构:
<div class="hide"><!-- form --></div>
<div class="button-hide"><a href="#">Hide Form</a></div>
<div class="button-show"><a href="#">Show Form</a></div>
当点击'按钮显示'锚时,它应该隐藏它自己的div,显示上面的'button-hide'div并切换上面的'hide'div:
$(document).ready(function(){
$(".hide").hide();
$(".button-hide").hide();
$("div.button-show a").click(function(){
$(this).closest("div.hide").slideToggle();
$(this).closest("div.button-hide").show();
$(this).hide();
});
});
这对我没有用,我在这里错误地使用'nearest()'命令吗?
答案 0 :(得分:3)
与其他人略有不同......
$(".button-show a").click(function(){
$(this).parent().siblings(".button-hide").show();
...
});
答案 1 :(得分:0)
您在链接上最接近匹配而不是父div。应该是.parent()。nearest()
答案 2 :(得分:0)
是的,最亲近的就像父母一样遍历祖先()。它上面的div不是祖先,而是兄弟姐妹(看看亚历克斯的回答)。如果你有这些div的容器div,最好只使用它作为这样的参考:
<div class="parent-container">
<div class="hide"><!-- form --></div>
<div class="button-hide"><a href="#">Hide Form</a></div>
<div class="button-show"><a href="#">Show Form</a></div>
</div>
然后在你的jquery
$(".button-show a").click(function(){
$(this).parents(".parent-container").find(".button-hide").show();
etc
})