我的HTML由文本行(问题)和每个文本行旁边的按钮组成,用于显示/隐藏答案。它是这样的。
<div id="test">
<ul>
<li>ques 1 <button>view/hide answer</button> </li>
<div id="ans1">
Answer 1
</div>
<li>ques 2 <button>view/hide answer</button></li>
<div id="ans2">
Answer 2
</div>
.
.
.
</ul>
</div>
我试图实现的是一个单一的函数,它可以获取被点击按钮的id,或者说是按钮的类,然后显示/隐藏它后面的div。使用jQuery,我可以为每个ids提供不同的ids,并为相同的ids编写代码,但这将是一件愚蠢的事情,因为我有很多问题要解决。我希望我能很好地解释我自己。可能有一种非常简单的方法可以做到这一点,但不幸的是,我就是做不到。希望外面的人能帮我。
发布于 2011-08-23 19:46:33
有几个jQuery方法可以帮你解决这个问题:
next
--可能是你最好的bet.nextAll
要显示button
元素之后的下一个元素,请执行以下操作:
$('button').click(function() {
$(this).next().slideToggle();
});
如果您更改了布局,而div
恰好不是下一个元素,那么您需要使用带有适当选择器的nextAll
,它会查看所有后续的兄弟元素,而不仅仅是下一个元素。
发布于 2011-08-23 19:46:28
尝尝这个。
$(function(){
$("#test button").click(function(){
//next() will get the next sibling of the button clicked.
$(this).parent().next().slideToggle();
});
});
发布于 2011-08-23 19:55:54
这就是你想要的:
$("button").click(function() {
$(this).parent().next().toggle();
});
它隐藏紧跟在按钮的父元素之后的第一个元素。
https://stackoverflow.com/questions/7166645
复制相似问题