我的表格中的td中有以下锚标记:
<a href="javascript:editAccount()" class="edit">edit</a>
我想在editAccount()函数中找到此td的父级,执行以下操作:
function editAccount(){ console.log($(this).parent().parent()); }
但是,我在控制台中一直变为空
答案 0 :(得分: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());
});
});
<强> Fiddle 强>
答案 1 :(得分:5)
this
没有引用该函数中的任何内容。
只需向锚点添加实际事件:
$('.edit').on('click', function(){
console.log($(this).parent().parent());
return false;
});
答案 2 :(得分:2)
不使用href="javascript:editAccount()
,而是通过jQuery使用标准事件注册绑定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"));
});