I have the following anchor tag in a td in my table:
我在表格中的td中有以下锚标记:
<a href="javascript:editAccount()" class="edit">edit</a>
I would like to find the parents of this td within my editAccount() function, doing the following:
我想在editAccount()函数中找到这个td的父节点,执行以下操作:
function editAccount(){ console.log($(this).parent().parent()); }
However, I keep getting null in my console
但是,我在控制台中一直变为null
3 个解决方案
#1
5
You need pass the element under question
你需要传递有问题的元素
<a onclick="editAccount(this)" class="edit">edit</a>
and
和
function editAccount(elem){ console.log($(elem).parent().parent()); }
or using function.call.
或使用function.call。
<a onclick="editAccount.call(this)" class="edit">edit</a>
and
和
function editAccount(){ console.log($(this).parent().parent()); }
Using Jquery to bind the event.
使用Jquery绑定事件。
<a class="edit" href="#">edit</a>
and
和
$(function(){
$('.edit').click(function(e){
e.preventDefault();
console.log($(this).parent().parent());
});
});
小提琴
#2
5
this
does not refer to anything in that function.
这并不是指该功能中的任何内容。
Just add an actual event to the anchor:
只需向锚添加一个实际事件:
$('.edit').on('click', function(){
console.log($(this).parent().parent());
return false;
});
#3
2
Instead of using href="javascript:editAccount()
, bind editAccount
using standard event registration via jQuery:
而不是使用href =“javascript:editAccount(),使用标准事件注册通过jQuery绑定editAccount:
$(".edit").on("click", editAccount);
You can also use an anonymous function instead of defining editAccount
separately.
您也可以使用匿名函数,而不是单独定义editAccount。
In case the .edit
links are added dynamically, you can use event delegation:
如果动态添加.edit链接,您可以使用事件委派:
$(document).on("click", ".edit", function (e) {
//prevent following the link if you want
e.preventDefault();
console.log($(this).closest("td"));
});
#1
5
You need pass the element under question
你需要传递有问题的元素
<a onclick="editAccount(this)" class="edit">edit</a>
and
和
function editAccount(elem){ console.log($(elem).parent().parent()); }
or using function.call.
或使用function.call。
<a onclick="editAccount.call(this)" class="edit">edit</a>
and
和
function editAccount(){ console.log($(this).parent().parent()); }
Using Jquery to bind the event.
使用Jquery绑定事件。
<a class="edit" href="#">edit</a>
and
和
$(function(){
$('.edit').click(function(e){
e.preventDefault();
console.log($(this).parent().parent());
});
});
小提琴
#2
5
this
does not refer to anything in that function.
这并不是指该功能中的任何内容。
Just add an actual event to the anchor:
只需向锚添加一个实际事件:
$('.edit').on('click', function(){
console.log($(this).parent().parent());
return false;
});
#3
2
Instead of using href="javascript:editAccount()
, bind editAccount
using standard event registration via jQuery:
而不是使用href =“javascript:editAccount(),使用标准事件注册通过jQuery绑定editAccount:
$(".edit").on("click", editAccount);
You can also use an anonymous function instead of defining editAccount
separately.
您也可以使用匿名函数,而不是单独定义editAccount。
In case the .edit
links are added dynamically, you can use event delegation:
如果动态添加.edit链接,您可以使用事件委派:
$(document).on("click", ".edit", function (e) {
//prevent following the link if you want
e.preventDefault();
console.log($(this).closest("td"));
});