Javascript Jquery单击“检查最近的复选框”
我正在尝试使用一个链接来检查jQuery中的复选框。我的HTML是: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> 不幸的是,这不起作用。
<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);
});