Javascript $(this).parent().remove()不工作

Javascript $(this).parent().remove()不工作,javascript,jquery,html,Javascript,Jquery,Html,尽管这是一个重复的“问题”,但即使在遵循了上面给出的答案之后,我仍然会遇到同样的问题。请帮忙 userinfo.topics.forEach(ele=>{ $(“#主题订阅”).append(`li class=“列表组项目col-4”>${ele}`); }); $(文档).on('单击','.removietem',()=>{ console.log('clicked'); $(this.parent().remove(); }); 请在将此标记为重复之前回答为什么会发生。如何解决这个问题

尽管这是一个重复的“问题”,但即使在遵循了上面给出的答案之后,我仍然会遇到同样的问题。请帮忙

userinfo.topics.forEach(ele=>{
$(“#主题订阅”).append(`li class=“列表组项目col-4”>${ele}`);
});
$(文档).on('单击','.removietem',()=>{
console.log('clicked');
$(this.parent().remove();
});

请在将此标记为重复之前回答为什么会发生。如何解决这个问题?(我将在问题得到回答后立即删除该问题……)

这是因为您使用的箭头函数没有明确的

改为:

$(document).on('click', '.removeitem', function(){
    console.log('clicked') ; 
    $(this).parent().remove() ; 
});

使用arrow函数作为事件回调。箭头函数不会重新定义
this
,因此在箭头函数实现中使用的
this
与调用
$(document).on(…)
的位置相同。使用实函数文字而不是箭头函数。请参阅:您的问题是,您没有按照另一个问题的答案进行操作,因为您使用的是箭头函数
()=>
,该函数在
的范围内表现不同。如果您根据您引用的答案将其切换为常规匿名功能,它应该会起作用。最好对原始问题进行评论,包括您的问题和答案,这样其他人可以进一步阅读,并在遇到同样的挫折时找到解决方案。
$(document).on('click', '.removeitem', function(){
    console.log('clicked') ; 
    $(this).parent().remove() ; 
});