如何在单击父级时更改复选框属性

时间:2011-06-10 13:37:16

标签: jquery

我需要你的小建议。

点击里面的checkbox属性应该改变。

里面还有一个

HTML代码:

 <table>
 <tr>
 <td class="answer"><input tabindex="4" type="checkbox" name="Dum1_4" id="Dum1_4" value="1"/></td>
 <td class="answerlabel"><label for="Dum1_4" id="Dum1_4_label"><table class="sample"><tr><td><img src="/ThumbsV2/2200000999-f.png"></td></tr><tr><td><b>Product 4</b></td></tr><tr><td>Product Description 4</td></tr><tr><td><b>Price 4</b></td></tr></table></label></td>
</tr>
<tr>
<td class="answer"><input tabindex="5" type="checkbox" name="Dum1_5" id="Dum1_5" value="1"/></td>
<td class="answerlabel"><label for="Dum1_5" id="Dum1_5_label"><table class="sample"><tr><td><img src="/ThumbsV2/2200001080-f.png"></td></tr><tr><td><b>Product 5</b></td></tr><tr><td>Product Description 5</td></tr><tr><td><b>Price 5</b></td></tr></table></label></td>
</tr>
</table> 

这是我的代码:

$('.sample').click(function()
{       
row =$this.parents("td");
row.siblings().find("input:checkbox").attr("checked","checked" );
}
});
});

请有人帮助我!

7 个答案:

答案 0 :(得分:1)

尝试

$('TABLE TBODY TR').click(function()
{
    $(this).find('input:checkbox').attr("checked", "checked");
});

使用jQuery

操纵复选框有一个不错的SO thread

View example here

答案 1 :(得分:1)

$('TABLE > TBODY > TR').click(function()
{
    $('input:checkbox', $(this)).prop("checked", "checked");
});

答案 2 :(得分:1)

如果您尝试切换所选状态,请使用以下命令:

jQuery 1.6 +

$('table tbody tr').click(function() {
    $('input:checkbox', this).prop('checked', function(index, oldValue) {
        return !oldValue;
    });
});

jQuery pre-1.6

$('table tbody tr').toggle(function() {
    $('input:checkbox', this).attr('checked', 'checked');
}, function() {
    $('input:checkbox', this).removeAttr('checked');
});

答案 3 :(得分:0)

将属性值更改为"checked"应该有效。

$('TABLE TBODY TR').click(function()
{
    $(this).find('input:checkbox').attr("checked", "checked");
});

See it in action

答案 4 :(得分:0)

试试这个

$(this).find('input:checkbox').attr("checked","checked"); 

答案 5 :(得分:0)

使用jQuery 1.6,代码更具可读性:

$("table tbody tr").click(function(){
    $(this).find("input[type='checkbox']").prop("checked",true);
});

答案 6 :(得分:0)

这对我来说很好:

$('#checkall').click(function() {
$('#cause').children().each(function() {    
                        $(this).find("input[type='checkbox']").prop("checked", $('#checkall').prop("checked"));
                    });
                });

只使用它而不使用每个函数/检查/取消选中所有元素