我一直试图在我的DOM中选择一个特定的div而没有成功,我找不到我做错了什么。你能帮我吗?
所以这是我的HTML代码:
<div class="small" id="CV"><h1>Cliquez ici pour ouvrir mon CV</h1></div>
<div class="big" id="CVLarge">
<!-- DOIT RESTER SOUS .big -->
<img src="../Images/aPropos/fermer.png" alt="fermer" title="fermer">
<h1>Diplômes</h1> <!-- etc etc-->
</div>
.big
在页面加载时为display:none
。
点击.big
时,有一个简短的jQuery代码可以打开.small
。这个工作正常。
$(".small").on("click", function(){
$(this).fadeOut();
$(this).next().slideToggle();
});
当我尝试通过单击十字按钮(html中的图像alt:“fermer”)来关闭.big
时出现问题。我希望它隐藏.big
并再次显示.small
。
这是我的尝试:
$(".big img").on("click", function(){
$(this).parent().slideToggle();
$(this).parent().closest(".small").fadeIn();
});
.big
切换回display:none
,但.small
拒绝出现在我尝试的任何内容中。
让你知道我尝试了什么:
.big
打开replaceWith()
的jQuery的先前版本,我想可能会让.small
从DOM中消失,因此无法再次出现,但即使我更改为一个更“一步一步”的jQuery,问题仍然存在。closest()
是否只检测元素的父母?但后来我不知道如何从“img”获得.small
。$("#CV")
时它起作用,但我需要这个代码不那么具体,因为jQuery适用于具有不同id的几个盒子。 感谢您的关注。我完全是自学成才,所以如果我犯了明显的错误,请指出它们(/ω\)
答案 0 :(得分:1)
用于遍历class small的选择器是错误的。您需要使用.prev()
选择器而不是.closest()
作为元素的兄弟元素,使用类big:
$(this).parent().prev(".small").fadeIn();
答案 1 :(得分:0)
尝试使用prev()而不是nearest()。
$(".big img").on("click", function(){
$(this).parent().slideToggle();
$(this).parent().prev().fadeIn();
});