如何在一个锚标记的href中声明的函数中获取$(this)

Raz*_*ead 1 ajax jquery

我在表格中的td中有以下锚标记:

<a  href="javascript:editAccount()" class="edit">edit</a>
Run Code Online (Sandbox Code Playgroud)

我想在editAccount()函数中找到这个td的父节点,执行以下操作:

function editAccount(){ console.log($(this).parent().parent()); }
Run Code Online (Sandbox Code Playgroud)

但是,我在控制台中一直变为null

PSL*_*PSL 5

你需要传递有问题的元素

<a  onclick="editAccount(this)" class="edit">edit</a>
Run Code Online (Sandbox Code Playgroud)

function editAccount(elem){ console.log($(elem).parent().parent()); }
Run Code Online (Sandbox Code Playgroud)

或使用function.call.

<a  onclick="editAccount.call(this)" class="edit">edit</a>
Run Code Online (Sandbox Code Playgroud)

function editAccount(){ console.log($(this).parent().parent()); }
Run Code Online (Sandbox Code Playgroud)

使用Jquery绑定事件.

<a class="edit" href="#">edit</a>
Run Code Online (Sandbox Code Playgroud)

$(function(){
    $('.edit').click(function(e){
       e.preventDefault();
       console.log($(this).parent().parent());
    });
});
Run Code Online (Sandbox Code Playgroud)

小提琴


Nea*_*eal 5

this 不引用该函数中的任何内容.

只需向锚添加一个实际事件:

$('.edit').on('click', function(){
   console.log($(this).parent().parent());
   return false;
});
Run Code Online (Sandbox Code Playgroud)