我尝试使用此代码:
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js" type="text/javascript"></script>
<style type="text/css">
div {display: none}
</style>
<script type="text/javascript">
$('.radio1').click(function () {
$('.div1').show();
});
$('.radio2').click(function () {
$('.div2').show();
});
</script>
<label><input type="radio" name="group1" class="radio1"></label>
<label><input type="radio" name="group1" class="radio2"></label>
<div class="div1">Radio1 selected !</div>
<div class="div2">Radio2 selected !</div>
但是当我检查任何收音机时,没有发生任何事情。
我试过小提琴:http://jsfiddle.net/Ac9c4/ 同样没有结果
有什么想法吗?
答案 0 :(得分:2)
你需要用DOM准备好你的函数:
$(function () {
$('.radio1').click(function () {
$('.div1').show();
});
$('.radio2').click(function () {
$('.div2').show();
});
});
你的小提琴不包括jQuery ......
如果你检查了控制台,你会看到这个错误:
未捕获的ReferenceError:$未定义
修正jsFiddle
答案 1 :(得分:1)
或您可以这样做:http://jsfiddle.net/y8f2p/
现在,下面的版本是位通用方法使用无线电类中的数值。 :)
休息见上面gdoron已经提到了其他一些东西!
<强>代码强>
$('input[type=radio]').click(function () {
$('.div' + $(this).prop('class').match(/\d+/)).toggle(); // OR .show whatever fits your need
});
答案 2 :(得分:1)
@ Tats_innit,@ Dan和@gdoron的其他回复是完全正确的:
@Tats_innit做了一个花哨的正则表达式匹配来获得单选按钮编号,这可以很好地工作,但我选择使用html- *属性进行更明确的标记。另外,我假设您只想一次显示一个div ,因此使用无线电控件?
<label><input type="radio" name="group1" class="radio1" data-divclass="div1"></label>
<label><input type="radio" name="group1" class="radio2" data-divclass="div2"></label>
<div class="div1 content">Radio1 selected !</div>
<div class="div2 content">Radio2 selected !</div>
jQuery(document).ready(function($) {
// select radio buttons by name
$('[type="radio"][name="group1"]').click(function () {
// hide all the content divs
$('.content').hide();
// then show the div matching the class from the html
$('.' + $(this).data("divclass")).show();
});
});
演示
答案 3 :(得分:0)
试试这个,它建议使用data-target属性
$( "input[type=radio]" ).on( "click", function() {
var x = $(this).attr("data-target")
if ($(this).is(':checked')) {
$(x).addClass("visible")
}
});
在无线电元素本身上添加数据目标属性。例如data-target =“。div1” 将为类“.div1”
的div添加一个名为“visible”的类别忘了添加那个课程:)
答案 4 :(得分:0)
试试这个:
$(function () {
$('.radio1').click(function () {
$('.div1').show();
$('.div2').hide();
});
$('.radio2').click(function () {
$('.div2').show();
$('.div1').hide();
});
});
答案 5 :(得分:0)
将jQuery添加到jsfiddle库
答案 6 :(得分:-1)
<div>
onchange
<radio>
事件
醇>
这没有jQuery:
<label><input type="radio" onchange="document.getElementById('div1').style.display='block';document.getElementById('div2').style.display='none'" name="group1" class="radio1"></label>
<label><input type="radio" onchange=" document.getElementById('div2').style.display='block';document.getElementById('div1').style.display='none'" name="group1" class="radio2"></label>
<div id="div1" class="div1 content">Radio1 selected !</div>
<div id ="div2" class="div2 content">Radio2 selected !</div>