基于单选按钮点击显示和隐藏div
问题描述:
我的html和jQuery代码在这里。这是一个非常简单的测试,但它仍然无法工作..基于单选按钮点击显示和隐藏div
这里是HTML:
<p>Select a question to see the answer.</p>
<div id="questionArea" class="questionArea" >
Question 1 <input type="radio" id="question1" class="question" name="radioGroup1" />
Question 2 <input type="radio" id="question2" class="question" name="radioGroup1" />
Question 3 <input type="radio" id="question3" class="question" name="radioGroup1" />
</div>
<div id="answerArea" class="answerArea">
<div id="answer1" class="answer">First Answer</div>
<div id="answer2" class="answer">Second Answer</div>
<div id="answer3" class="answer">Third Answer</div>
</div>
这里是jQuery的:
$(document).ready(function() {
$(".answerArea").hide();
$("input[$name='radioGroup1']").click(function() {
var answer = $(this).val();
$(".answerArea").hide();
$("#" + answer).show();
});
});
});
这里是另一种方式来显示/隐藏,虽然它不是一个好方法,但我只是想知道为什么它不能工作..
$(document).ready(function() {
$("div.answerArea").hide();
$('#question1').click(function() {
$('#answer2').hide('fast');
$('#answer3').hide('fast');
$('#answer1').show('fast');
});
$('#question2').click(function() {
$('#answer1').hide('fast');
$('#answer3').hide('fast');
$('#answer2').show('fast');
});
$('#question3').click(function() {
$('#answer1').hide('fast');
$('#answer2').hide('fast');
$('#answer3').show('fast');
});
});
答
$(".answerArea").hide();
隐藏包含答案的父元素。如果父母隐藏,则不能显示孩子。
我会用孩子们的指数做到这一点:
$(document).ready(function() {
$(".answer").hide();
$(".question").click(function() {
$(".answer").hide().eq($(this).index()).show();
});
});
这将隐藏所有的答案元素,然后显示对应的问题之一。
好的答案......我只是想补充一点,如果用户在已经有一个单选按钮被选中后刷新页面,他们再次看到答案的唯一方法就是点击一个不同的单选按钮。解决这个问题的两种方式:(1):在页面加载时重置表单('$('#myForm')[0] .reset()')(2):在页面首次加载时触发click事件。 '(“。question”)。click(function()...).trigger('click');' – 2013-02-24 22:09:54
@Blender它确实隐藏了所有的答案元素,但点击时仍然无法显示。请问,“eq”和index()是什么意思?谢谢。 – Sunny 2013-02-24 22:12:28
更改'$(“。answerArea”)。hide();'到'$(“。answer”)。hide();'? – Zac 2013-02-24 22:20:44