javascript - 传递 <tr> id 值 javascript 函数

标签 javascript dom

我要通过<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)"

DEMO

关于javascript - 传递 <tr> id 值 javascript 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6467556/

相关文章:

javascript - 在函数内使用循环变量,javascript 作用域混淆

javascript - 404 未找到(webpack 图片)

javascript - 页面上有多个相同的 'angular app' 副本

java - 如何在 java dom 解析器中格式化 xml?

javascript - 重置元素 'odd' 或 'even' 状态?

javascript - elementNodeReference.children 未检测到文本节点?

javascript - 如何在不突变的情况下更改具有相同值的对象的键值,同时在 javascript 中保持未更改键的引用相同?

javascript - Highcharts - 如何在全局范围内为每种类型的图表设置渐变主题?

javascript - 在 Jquery 追加后立即呈现 html

python - 如何将xml header 添加到dom对象