Javascript 将类添加到按钮

Javascript 将类添加到按钮,javascript,html,button,Javascript,Html,Button,我想在单击按钮后为一个小动画的按钮添加一个类。在我遇到问题的那一刻,我收到了以下信息: 未捕获的TypeError:无法读取未定义的属性“add” 我不能添加新类,有人能帮我吗 函数动画单击(ID){ var elmnt=document.getElementById(ID); var todo=这个; todo.classList.add(“旋转”); 设置超时( 函数(){ elmnt.scrollIntoView({ 行为:“平滑” }); }, 500 ); } 欢迎语 您可以使用a

我想在单击按钮后为一个小动画的按钮添加一个类。在我遇到问题的那一刻,我收到了以下信息:

未捕获的TypeError:无法读取未定义的属性“add”

我不能添加新类,有人能帮我吗

函数动画单击(ID){
var elmnt=document.getElementById(ID);
var todo=这个;
todo.classList.add(“旋转”);
设置超时(
函数(){
elmnt.scrollIntoView({
行为:“平滑”
});
}, 500
);
}

欢迎语

您可以使用
addEventListener
代替
onclick
,因为分离逻辑是一种很好的做法。 您可以通过将此作为参数发送来明确指示按钮

函数动画单击(ID,btn){
var elmnt=document.getElementById(ID);
var-todo=btn;
todo.classList.add(“旋转”);
设置超时(
函数(){
scrollIntoView({behavior:'smooth'});
}, 500
);}

欢迎语

您可以使用
addEventListener
代替
onclick
,因为分离逻辑是一种很好的做法。 您可以通过将此作为参数发送来明确指示按钮

函数动画单击(ID,btn){
var elmnt=document.getElementById(ID);
var-todo=btn;
todo.classList.add(“旋转”);
设置超时(
函数(){
scrollIntoView({behavior:'smooth'});
}, 500
);}

欢迎语
正如许多人所说,todo(
这个
)不是你想象的那样
在DOM中的函数中,除非在内部,否则指的是窗口对象。你可能认为它是指元素。这是因为计算机不知道要调用元素onclick属性中的函数。有两种方法可以解决这个问题

  • 您可以将此作为第二个参数todo的参数传入,如下所示
  • 这是来自fiddle的代码

  • 或者,您可以创建一个而不是使用
    onclick
    属性
  • 请遵循以下格式:

    element.addEventListener("click", function() {
        var todo = this;
        ....
    });
    
    最后,您应该能够添加一个新类,但是在您给我们的代码中,没有id为welcome的元素,因此它是空的。添加id为welcome的元素,它就会工作。

    正如许多人所说,todo(
    )不是您所认为的
    在DOM中的函数中,除非在内部,否则指的是窗口对象。你可能认为它是指元素。这是因为计算机不知道要调用元素onclick属性中的函数。有两种方法可以解决这个问题

  • 您可以将此作为第二个参数todo的参数传入,如下所示
  • 这是来自fiddle的代码

  • 或者,您可以创建一个而不是使用
    onclick
    属性
  • 请遵循以下格式:

    element.addEventListener("click", function() {
        var todo = this;
        ....
    });
    

    最后,您应该能够添加一个新类,但是在您给我们的代码中,没有id为welcome的元素,因此它是空的。添加id为welcome的元素,它就会工作。

    我猜
    todo
    不是您所认为的
    console.log(此)
    是否应为
    elmnt
    窗口
    。不要使用
    onclick
    属性。改为使用。在您共享的代码中没有id为“welcome”的元素。我猜
    todo
    不是您所认为的
    console.log(此)
    是否应为
    elmnt
    窗口
    。不要使用
    onclick
    属性。改为使用。在您共享的代码中没有id为“welcome”的元素。