2011-03-04 72 views
3

有没有在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

您可以使用.call()设置的this值作为你的要求。现在

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

deletePerson功能,this将成为元素。

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

我无法运行[你的代码](https://jsfiddle.net/pishva/x54w1xk1/) – alex 2016-01-13 14:16:11

7

传递一个引用作为参数:

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

function deletePerson(link, id) { 
    $(link).parent().remove(); 
    // [...] 
    return false; 
} 
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; 

});