2014-09-26 161 views
0

我有一个php脚本,输出多个div,在每个div是一个具有特定值的单选按钮。我想通过单击div时选择单选按钮来创建更好的用户体验,这在使用jquery时不是什么大问题。问题是,单击单选按钮本身而不是div时,以下单击不再具有选择单选按钮的效果。我也尝试删除每个单选按钮上的检查属性,然后检查选定的属性,但这不起作用。下面是我该怎么做:javascript jquery选择单选按钮

$(".fontCellDiv").click(function(){ 
    $(this).find("input").attr("checked", true); 
}); 

有没有人有想法?

+1

无法清楚地知道你想要什么,并发布html或小提琴链接plz。 – 2014-09-26 06:57:44

回答

0

使用.prop(),而不是.attr()

从文档:

属性与属性

属性和性能之间的差异可以在 具体情况非常重要。在jQuery 1.6之前,.attr()方法有时在检索某些属性时会考虑属性值, 可能会导致行为不一致。从jQuery 1.6开始,.prop() 方法提供了显式检索属性值的方法,而 .attr()检索属性。

+0

是的,这是解决方案,我仍然不明白为什么attr()不做这项工作。 – user1563232 2014-09-26 07:21:01

+0

请阅读我寄给您的完整文档。另外,如果一个答案解决了你的问题,你应该“接受”它作为正确的答案 – Itay 2014-09-26 14:57:07

0

$(".fontCellDiv").click(function(){ 
 
    $(".fontCellDiv").find("input").removeAttr('checked'); 
 
    $(this).find("input").attr("checked", true); 
 
});
.fontCellDiv{ 
 
    width: 100px; 
 
    background-color: #0f0; 
 
    margin-bottom: 5px; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script> 
 
<div class="fontCellDiv"> 
 
    <input name="sameGroup" type="radio" /> 
 
</div> 
 
<div class="fontCellDiv"> 
 
    <input name="sameGroup" type="radio" /> 
 
</div> 
 
<div class="fontCellDiv"> 
 
    <input name="sameGroup" type="radio" /> 
 
</div>

检查该样品。