0

私は次のような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(); });
4

2 に答える 2

3

.closest()メソッドを探しています:

function UpdateResourceLinkClickedHandler() {
    var $tr = $(this).closest('tr');
}
于 2013-10-09T12:54:52.057 に答える
1
function WireHandlers() {
    $('.updateResourceImageButton').click( function(){

        var trParent = $( this ).parent().parent();
        UpdateResourceLinkClickedHandler();
    });
}

なぜ親 tr 参照が必要なのかわからないので、私の例では使用していません

于 2013-10-09T12:55:12.867 に答える