2011-03-04 70 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; 

});