单击div时,检查相应的无线电输入jquery

时间:2013-02-07 11:44:03

标签: javascript jquery html radio

这是我的问题,我希望整个div可以点击,当点击时我需要检查div中包含的单选按钮,所以div充当收音机本身。这是我认为我可以使用的;

$('#content').click(function(e) { $('input:radio[name="id_"]').prop('checked', true); });

但这不是选择div内的相对无线电。我想我可以使用this选择器,我是对的吗?

6 个答案:

答案 0 :(得分:4)

你没有提供任何代码,所以我想:

样本

See my demo on CodePen

HTML

<div class="content">
  <input type="radio" name="foo">
</div>

<div class="content">
  <input type="radio" name="foo">
</div>

<div class="content">
  <input type="radio" name="foo">
</div>

CSS(例如)

.content {
  float: left;
  width: 100px;
  padding-top: 100px;
  background-color: #eee;
  margin-left: 10px;
}

JS(JQUERY)

$('.content').click(function(){
  $(this).find('input[type=radio]').prop('checked', true);
})

答案 1 :(得分:3)

是的,您可以使用this选择器。我快速jsfiddle to show you an example

答案 2 :(得分:2)

这应该这样做。

$('input:radio[name*="id_"]'), assuming the name starts with id_

是的,您可以使用this。使用它来过滤其子项,如:

$(this).children('input:radio[name*=id_]').prop("checked", true)

关键是使用name*=id_

这意味着选择名称以id_开头的元素。这不是你想要的吗?

答案 3 :(得分:2)

$('#content').click(function(){
$(this).children('radio').attr('checked','checked')
})

答案 4 :(得分:1)

试试这个:

$('div').click(function(){
     if( $('div').find('input:checkbox').prop("checked") == true){
         $('div').find('input:checkbox').prop("checked", false);
     }
     else{
         $('div').find('input:checkbox').prop("checked", true);
     }
});

LIVE DEMO

答案 5 :(得分:1)

在Deif的解决方案的基础上,这将在点击div

时切换检查状态

fiddle

<div id="content">
    Some content
    <input type="radio" id="radio1" value="test" />
</div>

<script type="text/javascript">
$('#content').click(function () {    
   var val =  $(this).find('input:radio').prop('checked')?false:true;
   $(this).find('input:radio').prop('checked', val);
});
</script>