我的表中的 td 中有以下锚标记:
<a href="javascript:editAccount()" class="edit">edit</a>
我想在我的 editAccount() 函数中找到这个 td 的父母,执行以下操作:
function editAccount(){ console.log($(this).parent().parent()); }
但是,我的控制台中一直为 null
您需要传递有问题的元素
<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());
});
});
this
没有引用该函数中的任何内容。
只需将实际事件添加到锚点:
$('.edit').on('click', function(){
console.log($(this).parent().parent());
return false;
});
不使用,而是通过 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"));
});