1

テーブルの td に次のアンカー タグがあります。

<a  href="javascript:editAccount()" class="edit">edit</a>

次のようにして、editAccount() 関数内でこの td の親を見つけたいと思います。

function editAccount(){ console.log($(this).parent().parent()); }

ただし、コンソールでnullを取得し続けます

4

3 に答える 3

5

問題の要素を渡す必要があります

<a  onclick="editAccount(this)" class="edit">edit</a>

function editAccount(elem){ console.log($(elem).parent().parent()); }

またはfunction.callを使用します。

<a  onclick="editAccount.call(this)" class="edit">edit</a>

function editAccount(){ console.log($(this).parent().parent()); }

Jquery を使用してイベントをバインドします。

<a class="edit" href="#">edit</a>

$(function(){
    $('.edit').click(function(e){
       e.preventDefault();
       console.log($(this).parent().parent());
    });
});

フィドル

于 2013-07-08T19:46:05.560 に答える
5

thisその関数では何も参照しません。

実際のイベントをアンカーに追加するだけです:

$('.edit').on('click', function(){
   console.log($(this).parent().parent());
   return false;
});
于 2013-07-08T19:46:25.027 に答える
2

を使用する代わりに、jQuery 経由で標準のイベント登録を使用してhref="javascript:editAccount()バインドします。editAccount

$(".edit").on("click", editAccount);

個別に定義する代わりに、無名関数を使用することもできますeditAccount

リンクが動的に追加される場合は、.editイベント委任を使用できます。

$(document).on("click", ".edit", function (e) {
    //prevent following the link if you want
    e.preventDefault();

    console.log($(this).closest("td"));
});
于 2013-07-08T19:46:48.750 に答える