JS如何通过每行的button来使该行的checkbox选中
JSP页面做个一个table,第一列是cheeckbox类型的,最后一列设置了button,想通过JS来控制每行的button点击时候使该行的checkbox为选中。我J...
JSP页面做个一个table,第一列是cheeckbox类型的,最后一列设置了button,想通过JS来控制每行的button点击时候使该行的checkbox为选中。
我JS里是这么写的,但是不管点哪行的按钮都是把第一行的checkbox选中的,应该怎么改呢
var id = document.getElementById("id");
id.checked = true; 展开
我JS里是这么写的,但是不管点哪行的按钮都是把第一行的checkbox选中的,应该怎么改呢
var id = document.getElementById("id");
id.checked = true; 展开
展开全部
假设圆祥表格结构:
<table border="1">
<tr>
<td><input type="checkbox" /></td>
<td>内含腔喊容</td>
<td><button>测试</button><谈野/td>
</tr>
<tr>
<td><input type="checkbox" /></td>
<td>内容</td>
<td><button>测试</button></td>
</tr>
</table>
脚本:(用了jquery)
$(function(){
$("button").click(function(){
$(this).closest("tr").find("input:first")[0].checked = true;
});
});
更多追问追答
追问
能用JS吗,大佬,我JQuery还会啊
追答
function init() {
//所有按钮
var buttons = document.getElementsByTagName("button");
for(var i = 0;i < buttons.length;++i) {
buttons[i].onclick = function(e) {
var tr = e.target.parentNode.parentNode;
//找所有子节点,不光包含td,还可能包含#text一类的,需要过滤
for(var j = 0;j < tr.childNodes.length;++j) {
var node = tr.childNodes[j];
if(node.tagName == "TD") {
node.firstChild.checked = true;
break;
}
}
}
}
}
在合适的时机比如body onload时调用一下init()就可以了。
如果表格结构固定,上面代码中的过滤部分可以简化成一句搞定:
tr.childNodes[1].firstChild.checked = true;
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询