jQuery 为什么回调函数中的 $(this) "window"?



我正要为我的待办事项列表代码制作删除按钮。 这是我的代码<script>

var del = $("<ion-icon name='trash'></ion-icon>").click((e)=>{
var p = $(this).parent();
p.remove()
console.log(this)
})

我在浏览器控制台中得到了这样的日志。

Window {parent: Window, opener: null, top: Window, length: 0, frames: Window, …}

现在我发现另一种是使用$(e.target)但我仍然很好奇为什么回调函数中的 $(this( 是"窗口"。

我在等你伟大的答案:)感谢!

  • 这就是我想在我的代码中做的
$('#task').click((e)=>{
var task = $("<li class='task'></li>").text($('#enter-task').val())
var del = $("<ion-icon name='trash'></ion-icon>").click((e)=>{
var p = $(this).parent();
p.remove()
console.log(this)
})
task.append(del)
$("#tasklist").append(task)
})

jQuery .parent(( 方法返回 span 元素的父元素,如文档中所示。

您的图标可能位于 span 元素内,当您调用方法 parent(( 时,var p = $(this).parent();您的目标是 Window 对象。

最新更新