Javascript 如果选择了单选值,则显示div

Javascript 如果选择了单选值,则显示div,javascript,jquery,Javascript,Jquery,如果选择了一个单选值,我想显示一个div,但如果选择了另一个值,我想再次隐藏它 <input type="radio" name="timespan" id="timespan" value="ongoing" checked>On-going <input type="radio" name="timespan" id="timespan" value="history">Historical <script type="text/javascript">

如果选择了一个单选值,我想显示一个
div
,但如果选择了另一个值,我想再次隐藏它

<input type="radio" name="timespan" id="timespan" value="ongoing" checked>On-going
<input type="radio" name="timespan" id="timespan" value="history">Historical


<script type="text/javascript">
        $(document).ready(function() {
          $('.end_date').css('display','none');
              $('#timespan').click(function () {
               var selected = $(this).find(':checked').val();  
                  if(selected == 'history') {
                   $('.end_date').css('display','block');
                } else {
                   $('.end_date').css('display','none');
                 }
          });       
        });
</script>
正在进行中
历史的
$(文档).ready(函数(){
$('.end_date').css('display','none');
$('#timespan')。单击(函数(){
var selected=$(this.find(':checked').val();
如果(所选==“历史记录”){
$('.end_date').css('display','block');
}否则{
$('.end_date').css('display','none');
}
});       
});

如果选择了
history
,我希望显示带有class
end\u date
的元素,否则如果选择了
持续的
,我希望它们被隐藏

您有两个元素共享相同的
id
。那不行。将
history
按钮的
id
更改为唯一的。也可以将选择器更改为类选择器:

$('.timespan').click(function () { ...

这确保单击事件应用于两个单选按钮。

Html标记不应包含两个具有相同
id
的元素,页面上的
id
应是唯一的,而应将
时间跨度添加到两个单选按钮

在代码中,可以使用.hide()和
.show()
来代替将
display
属性设置为block或none

另外,您可以假定单击的按钮将被选中,而不是查找
选中的
单选按钮。这将代码简化为
$(This.val()
而不是
$(this).find(':checked').val()

HTML

<input type="radio" class="timespan" name="timespan" value="ongoing" checked>On-going
<input type="radio" class="timespan" name="timespan" value="history">Historical
<div class="end_date">End Date</div>
<input type="radio" name="timespan" id="ongoing" value="ongoing" checked>On-going
<input type="radio" id="historical" name="timespan" value="history">Historical

<div class='end-date'>End-date</div>

JS Fiddle:

正如一些人所说,您不应该拥有共享ID的HTML元素。ID是唯一的标识符。更改目标的ID。在我的示例中,jQuery一般检查无线电输入点击事件,并检查ID。如果它们与“历史”目标匹配,则所需的div将可见。 HTML

<input type="radio" class="timespan" name="timespan" value="ongoing" checked>On-going
<input type="radio" class="timespan" name="timespan" value="history">Historical
<div class="end_date">End Date</div>
<input type="radio" name="timespan" id="ongoing" value="ongoing" checked>On-going
<input type="radio" id="historical" name="timespan" value="history">Historical

<div class='end-date'>End-date</div>
jQuery

$('input[type=radio]').on('click', function(){
  var selected = $(this).attr('id');

  if(selected === 'historical') {
    $('.end-date').fadeIn();
  } else {
    $('.end-date').hide();
  }
});

请查看HTML中有关ID的规范。是否有错误?它不起作用吗?@John,它只是不起作用。它每页不能使用超过一次。“我愿意”-然后就做!请明确地问你的问题(并描述期望与结果)。@tatty27很高兴我能帮忙!