【发布时间】:2014-02-21 16:53:42
【问题描述】:
我有五个 ID 不同但类名相同的 div。每个 div 有两个单选按钮:Yes and No。如果用户在一个 div 中选择No,则会显示下一个 div,如果他选择Yes,则应显示一条消息,并隐藏所有 div(除了以前的)。
如果用户在前 4 个 div 中选择“否”,然后在第二个 div 中再次选择“是”,第三个和第四个应该隐藏,但第一个应该保持可见。 如何隐藏所有下一个 div?
这是我的 HTML 结构:
<div id="div1" class="mydiv">
<asp:RadioButton ID="radio1yes" CssClass="quest" GroupName="Q1" runat="server" Text="Yes" />
<asp:RadioButton ID="radio1no" CssClass="quest" GroupName="Q1" runat="server" Text="No" />
</div>
<div id="div2" class="mydiv" class="ques">
<asp:RadioButton ID="radio2yes" CssClass="quest" GroupName="Q2" runat="server" Text="Yes" />
<asp:RadioButton ID="radio2no" CssClass="quest" GroupName="Q2" runat="server" Text="No" />
</div>
<div id="div3" class="mydiv">
<asp:RadioButton ID="radio3yes" CssClass="quest" GroupName="Q3" runat="server" Text="Yes" />
<asp:RadioButton ID="radio3no" CssClass="quest" GroupName="Q3" runat="server" Text="No" />
</div>
<div id="div4" class="mydiv">
<asp:RadioButton ID="radio4yes" CssClass="quest" GroupName="Q4" runat="server" Text="Yes" />
<asp:RadioButton ID="radio4no" CssClass="quest" GroupName="Q4" runat="server" Text="No" />
</div>
<div id="div5" class="mydiv" style="display: none">
<asp:RadioButton ID="radio5yes" CssClass="quest" GroupName="Q5" runat="server" Text="Yes" />
<asp:RadioButton ID="radio5no" CssClass="quest" GroupName="Q5" runat="server" Text="No" />
</div>
还有我的 JQuery
$('.quest :radio').each(function (i, obj) {
$(obj).click(function () {
var Id = $(obj).val();
switch (Id) {
case "radio1yes":
alert("Message");
break;
case "radio1no":
$("#div2").hide();
break;
case "radio2yes":
alert("Message");
break;
case "radio2no":
$("#div3").hide();
break;
}
});
});
【问题讨论】:
-
使用 .nextAll() 方法
-
是的,它可以工作,但是它隐藏了所有的div(包括页脚),我只想隐藏这些特定的div
-
根据您的评论,我已经添加了答案。