我希望能够点击表格中的td元素,并选中或取消选中同一行中兄弟td中的复选框。
小提琴: http://jsfiddle.net/cJ2us/
请注意,是的,这与许多问题非常相似,请不要链接任何重复项,除非您真正了解我遇到的问题以及那里给出的答案不符合我的问题。 e.g。
Jquery event on wrapped input radio override 'checked' event 不是复选框
jQuery onclick div checks a checkbox 切换不允许单击单独的td来执行每个检查并取消选中
Find the Checkbox in Sibling <td> and check it using jQuery不适合这个例子,代码实际上并不适用于回答者的想法
在说,如果你发现一个适合的骗局让我知道!我只想要一个可行的解决方案。
答案 0 :(得分:13)
这有效,是你想要的吗?
$("td").click(function(e) {
var chk = $(this).closest("tr").find("input:checkbox").get(0);
if(e.target != chk)
{
chk.checked = !chk.checked;
}
});
答案 1 :(得分:1)
使用标签。
<label for='cheboxID'>LABEL</label>
这是一个js解决方案:http://jsfiddle.net/maniator/eWh5F/
$("td").click(function(e) {
var checkbox = $(':checkbox', $(this).parent()).get(0);
var checked = checkbox.checked;
if (checked == false) checkbox.checked = true;
else checkbox.checked = false;
});
答案 2 :(得分:1)
$("td").click(function(e) {
var $checkbox = $("input[type='checkbox']");
$checkbox.attr('checked', !$checkbox.attr('checked'));
});
答案 3 :(得分:0)
还有另一种方式,完整的 javascript
function aply(t){
let chk = t.firstChild;
chk.checked =!chk.checked;
}
function stopProp(e){
e.stopPropagation();
}
.table tr td{
height:50px;
width:100px;
background-color:gray;
}
<table class="table">
<tr>
<td onclick="aply(this)"><input type="checkbox" onclick="stopProp(event);" />1</td>
</tr>
<tr>
<td onclick="aply(this)"><input type="checkbox" onclick="stopProp(event);" />2</td>
</tr>
</table>