Javascript Jquery单击“检查最近的复选框”

Javascript Jquery单击“检查最近的复选框”,javascript,jquery,click,Javascript,Jquery,Click,我正在尝试使用一个链接来检查jQuery中的复选框。我的HTML是: <table> <tr> <td><input type="checkbox" value="test" /></td> <td><a class="editbutton" href="#">edit</a></td> </tr> </table> 不幸的是,这不起作用。

我正在尝试使用一个链接来检查jQuery中的复选框。我的HTML是:

<table>
  <tr>
    <td><input type="checkbox" value="test" /></td>
    <td><a class="editbutton" href="#">edit</a></td>
  </tr>
</table>
不幸的是,这不起作用。有什么想法吗?

使用
.prop()
而不是
.attr()
,因为
.prop
用于设置
属性。顺便说一句,你的选择器错了
.closest()
将遍历dom树

请阅读以下内容以获取更多参考:

试试这个

jQuery('.editbutton').click(function($) {
    jQuery(this).closest('td').prev().find('[type=checkbox]').prop('checked', true);
});
或者像@kappa建议的那样

jQuery('.editbutton').click(function($) {
    jQuery(this).closest('tr').find('[type=checkbox]').prop('checked', true);
});

你听说过HTML标签吗?“他们在没有任何JavaScript的情况下就这么做了。”埃帕斯卡雷罗将其作为回答发帖,我当然会投赞成票。查找最近的祖先元素。您需要做更多的工作。@epascarello我不能控制复选框,也不能控制HTML,因此jQuery!如果你只是寻找最近的tr,你不需要
prev
@kappa,我只是想,连接
tr
需要更多的遍历。我想得对吗。?请澄清。对我来说听起来像是微优化。依赖prev是非常容易受到攻击的-稍后您可能会在两者之间添加另一个单元格。我并不是说你的解决方案是错误的,只是添加了一个替代方案。@quity
易受未来修改的攻击。很好。非常感谢。相应更新。+1,回答很好,希望你实现一个功能。这就是复选框的要点。
jQuery('.editbutton').click(function($) {
    jQuery(this).closest('tr').find('[type=checkbox]').prop('checked', true);
});