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 回答