Я собирался сделать кнопку удаления для моего кода списка дел. это мой код в {amp}lt;script{amp}gt;

  var del = $("{amp}lt;ion-icon name='trash'{amp}gt;{amp}lt;/ion-icon{amp}gt;").click((e)={amp}gt;{ 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)={amp}gt;{ var task = $("{amp}lt;li class='task'{amp}gt;{amp}lt;/li{amp}gt;").text($('#enter-task').val()) var del = $("{amp}lt;ion-icon name='trash'{amp}gt;{amp}lt;/ion-icon{amp}gt;").click((e)={amp}gt;{ 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 .