我有一个名为deleteTask的函数,它目前只执行console.log(this)
<input type="button" value="Delete Task" onclick="deleteTask()"/>
(注意这是在jQuery函数中,而不是在HTML文件中(返回[object Window]
而del.onclick = deleteTask;
(其中del是输入按钮(返回被点击的对象,在本例中为<input>
如何使jQuery版本的输出类似于纯JS版本?
您可以使用Function#call
,但通常最好使用addEventListener
。
function deleteTask() {
console.log(this)
}
<input type="button" value="Delete Task" onclick="deleteTask.call(this)" />
在jQuery中,您可以这样设置它:
html:
<input type="button" value="Delete Task" data-role='delete' />
脚本:
$(document).ready(function() {
$('[data-role=delete]').click( deleteTask )
})
function deleteTask() {
// element clicked is this -- or if you want it ready for JQ: $(this)
}