通过<;tr>;id值javascript函数

通过<;tr>;id值javascript函数,javascript,dom,Javascript,Dom,我想传递id值,而不是此.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=

我想传递
id值,而不是
此.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>



如果结构与此完全相同,则可以使用

this.parentNode.parentNode.id
当然,一旦结构发生变化,这将立即停止

您应该绑定到
change
事件,而不是绑定到
click
事件。然后还介绍了键盘所做的更改


当每个处理者都在做同样的事情时,你应该考虑杠杆作用。不要将事件处理程序附加到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);
       }
   }
};
这看起来更复杂,但优点是您不必在每个
输入
元素上编写
onclick=“toggle(This.id)”


如果结构与此完全相同,则可以使用

this.parentNode.parentNode.id
当然,一旦结构发生变化,这将立即停止

您应该绑定到
change
事件,而不是绑定到
click
事件。然后还介绍了键盘所做的更改


当每个处理者都在做同样的事情时,你应该考虑杠杆作用。不要将事件处理程序附加到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);
       }
   }
};
这看起来更复杂,但优点是您不必在每个
输入
元素上编写
onclick=“toggle(This.id)”

您的“演示”没有任何作用。你至少可以实现一些虚拟的
切换功能。你的“演示”什么都没做。您至少可以实现一些虚拟的
切换
功能。