Javascript `这本书装订不好

Javascript `这本书装订不好,javascript,Javascript,这里我想要的是removeWidget(this)中的“this”参数绑定到HTMLElement“this”not my class“this” 类别: deleteSong.onclick = (this)=>{ this.removeWidget(this) } 为了更清楚,我正在努力实现以下目标 单击我。 “this”将返回HtmleElement对象的地方,您的主要问题是将this放在函数参数中,因此重新定义this。只要把它改成别的东西,这样当你真正指的是这个,它就是这个 o

这里我想要的是
removeWidget(this)
中的“this”参数绑定到HTMLElement“this”not my class“this”

类别:

deleteSong.onclick = (this)=>{ this.removeWidget(this) }
为了更清楚,我正在努力实现以下目标

单击我

“this”将返回HtmleElement对象的地方,您的主要问题是将
this
放在函数参数中,因此重新定义
this
。只要把它改成别的东西,这样当你真正指的是
这个
,它就是
这个

onclick
事件将在回调中向您传递
事件。要访问实际元素,您需要使用
event.target

例如:

类集合{
createElements(){
让deleteSong=document.createElement('button');
deleteSong.className+=“删除歌曲”;
setAttribute('type','button');

deleteSong.onclick=(e)=>{/你的主要问题是你把
这个
放在你的函数参数里面,因此重新定义了
这个
。把它改成其他的东西,这样当你真正指的是
这个
,它就是
这个

onclick
事件将在回调中向您传递
event
。要访问实际元素,您需要使用
event.target

例如:

类集合{
createElements(){
让deleteSong=document.createElement('button');
deleteSong.className+=“删除歌曲”;
setAttribute('type','button');

deleteSong.onclick=(e)=>{/只需将事件作为参数传递,而不是此关键字。类似的操作将生成所需的元素

HTML:

class Collection{

createElements(){
    let deleteSong = document.createElement('button');
    deleteSong.className += 'delete-song';
    deleteSong.setAttribute('type', 'button');
    deleteSong.onclick = (this)=>{ this.removeWidget(this) }
    deleteSong.innerHTML = '✕';
 }
}

只需将事件作为参数传递,而不是关键字。类似的操作将生成所需的元素

HTML:

class Collection{

createElements(){
    let deleteSong = document.createElement('button');
    deleteSong.className += 'delete-song';
    deleteSong.setAttribute('type', 'button');
    deleteSong.onclick = (this)=>{ this.removeWidget(this) }
    deleteSong.innerHTML = '✕';
 }
}

请也给我们html。您的问题中的所有
这个
都很混乱!我没有看到类。
这个
在您的函数参数中可能是事件对象,请尝试
deleteSong.onclick=(event)=>{this.removeWidget(event.target)}
。但这只是一个猜测。我们需要更多的上下文,正如前面所述:)请也给我们html。你问题中的所有
这个
s都很混乱!我没有看到一个类。
这个
在你的函数参数中可能是事件对象,请尝试
deleteSong.onclick=(event)=>{this.removeWidget(event.target)}
。但这只是猜测。我们需要更多的上下文,正如前面所述:)
deleteSong.onclick = (event)=>{ this.removeWidget(event.target) }