我要通过<tr>
id 值 代替 this.id
,如何获取tr id值。请帮助我谢谢
<tr id="1">
<td>
<input type="checkbox" onclick="toggle(this.id)" value="private" name="private" id="private_1">
</td>
<td>
<input type="checkbox" onclick="toggle(this.id)" checked="" value="public" name="public" id="public_1">
</td>
</tr>
<br>
<tr id="2">
<td>
<input type="checkbox" onclick="toggle(this.id)" checked="" value="private" name="private" id="private_2">
</td>
<td>
<input type="checkbox" onclick="toggle(this.id)" value="public" name="public" id="public_2">
</td>
</tr>
<强> Demo
最佳答案
如果结构完全像这样,你可以使用
this.parentNode.parentNode.id
当然,一旦结构发生变化,这就会停止。
您应该绑定(bind)到 change
事件,而不是绑定(bind)到 click
事件。然后您还可以覆盖键盘所做的更改。
由于每个处理程序都执行相同的操作,因此您应该考虑利用 event bubbling 。不要将事件处理程序附加到 HTML 中的每个 input
元素,而是仅将一个事件处理程序附加到表:
var table = document.getElementById('tableId');
table.onchange = function(event) {
event = event || window.srcElement; // IE specials
var target = event.target || event.srcElement; // IE specials
// was the element a checkbox?
if(target.nodeName === "INPUT" && target.type === "checkbox") {
// find parent row
var parent = target.parentNode;
while(parent.nodeName !== "TR" && parent !== null) {
parent = parent.parentNode;
}
if(parent) { // we found the row
toggle(parent.id);
}
}
};
这看起来更复杂,但优点是您不必在每个 input
元素上编写 onclick="toggle(this.id)"
。
关于javascript - 传递 <tr> id 值 javascript 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6467556/