jQuery查找子复选框

Dod*_*nas 16 checkbox jquery html-table

我有一个快速的jQuery问题:

我有以下类型的表:

<table id="my_table">
  <tr>
   <td><input type="checkbox" value="24"></td>
   <td> Click Here To Check The Box </td>
   <td> Or Click Here </td>
  </tr>
 </table>
Run Code Online (Sandbox Code Playgroud)

在jQuery中,我试图选中该行中单击的相应复选框.

 $("#my_table tr").click(function(e) { 
     $(this).closest(":checkbox").attr("checked", checked");
  });
Run Code Online (Sandbox Code Playgroud)

但上述情况并不奏效.有关选择单击行的复选框的快速建议吗?谢谢!

mVC*_*Chr 33

编辑:最佳解决方案

假设只有一个复选框,我会将事件附加到td而不是tr:

$('#my_table td').click(function(e){
  $(this).parent().find('input:checkbox:first').attr('checked', 'checked');
});
Run Code Online (Sandbox Code Playgroud)

如果你想要取消选中复选框...

$('#my_table td').click(function(e) {
    var $tc = $(this).parent().find('input:checkbox:first'),
        tv = $tc.attr('checked');

    $tc.attr('checked', !tv);
});
Run Code Online (Sandbox Code Playgroud)

此函数也需要应用于复选框以取消默认行为.

例2

编辑:解决方案是最合理的方法是取消功能,如果目标是一个输入:http://jsfiddle.net/EXVYU/5/

var cbcfn = function(e) {
    if (e.target.tagName.toUpperCase() != "INPUT") {
        var $tc = $(this).parent().find('input:checkbox:first'),
            tv = $tc.attr('checked');
        $tc.attr('checked', !tv);
    }
};

$('#my_table td').live('click', cbcfn);
Run Code Online (Sandbox Code Playgroud)