javascript - 在 DOM 层次结构中向上移动几个级别到包含的表行

标签 javascript jquery

我有一个像这样的 HTML 结构:

<tr class = "@rowOrdinal" id = "...">                            
    <td>
        <a href = "#">
            <img src = "/Content/updateIcon.gif" class = "updateResourceImageButton" id = "..." />
        </a>
        &nbsp;

        <a href = "#">
            <img src = "/Content/cancelIcon.gif" class = "cancelImageButton" />
        </a>
        &nbsp;
    </td>

    <td class = "hiddenColumn" id = ...>...</td>
    <td class = "resourceKeyColumn" id = ...>...</td>
    ... and so on...

单击更新链接时,我想获取对行的引用,即更新超链接所在的 tr 元素。

因此,在下面的事件监听器中,我想将 DOM 层次结构提升几个级别。我可以使用简单的 JavaScript 并使用 while 循环来获取 parentNode,但是如何使用 jQuery 做到这一点?

function WireHandlers() {
    $('.updateResourceImageButton').click(UpdateResourceLinkClickedHandler);
}

function UpdateResourceLinkClickedHandler() {
  // how do I get a reference to the tr that contains
  // the hyperlink which is the source of this event?
}

$(document).ready(function () { WireHandlers(); });

最佳答案

您正在寻找.closest()方法:

function UpdateResourceLinkClickedHandler() {
    var $tr = $(this).closest('tr');
}

关于javascript - 在 DOM 层次结构中向上移动几个级别到包含的表行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19272572/

相关文章:

javascript - 使用 Canvas 时是否可以避免 "The operation is insecure"?

javascript - Jquery鼠标悬停问题

javascript - 显示 ajax 结果数据保存

javascript - 当进行有效的单选选择或文本输入时,聚焦于下一个 div

jquery - jQuery 控件触发的 CSS 转换发生在一个方向,但不会发生在另一个方向

javascript - jsx 表忽略的换行符

javascript - node.js 事件循环是否像 ajax 调用?

javascript - 如何在 javascript 中重新创建 pmouseY 和 pmouseX (processing.JS 变量)

jquery - <img> 标签是否有 "onsuccess"属性?

javascript - jQuery Yii 更新数据表,仅当选项卡显示时