jQuery:使用$(this)Inside Functions?

时间:2011-03-04 13:52:18

标签: jquery function this

有没有办法在jQuery函数中使用$(this)

HTML

<ul>
  <li class="delete"><a onclick="deletePerson(12);" href="">Delete</a></li>
</ul>

的jQuery

function deletePerson(id) {
  $(this).parent().remove(); // doesn't work
  // [...]
  return false;
}

3 个答案:

答案 0 :(得分:7)

将引用作为参数传递:

<ul>
  <li class="delete"><a onclick="deletePerson(this, 12);" href="">Delete</a></li>
</ul>

function deletePerson(link, id) {
  $(link).parent().remove(); 
  // [...]
  return false;
}

答案 1 :(得分:3)

您可以使用.call()按照您的要求设置this的值。

<a onclick="deletePerson.call( this, 12 );" href="">Delete</a>

现在在deletePerson函数中,this将成为元素。

function deletePerson(id) {
  $(this).parent().remove(); // will work
  // [...]
  return false;
}

答案 2 :(得分:0)

由于您使用的是JS,因此您无需在链接上使用JS。

HTML

<ul>
    <li class="delete"><a onclick="deletePerson(12);" href="">Delete</a></li>
</ul>

的jQuery

$('.delete').find('a').bind('click', function() {

    $(this).parent().remove();
    return false;

});