使用事件侦听器更改按钮

时间:2021-02-01 01:15:21

标签: javascript dom

我有一个按钮元素列表,我试图将 eventlistener 附加到这些按钮元素,这样无论何时单击它,INNERHTML 都会发生变化。我的代码如下。 else if 语句永远不会触发。 有人可以帮助我了解我做错了什么以及如何解决吗?


let editButtons = document.getElementsByClassName("editBtns");

    for(let btn =0; btn<editButtons.length; btn++ ){
        editButtons[btn].addEventListener('click', function(e){
        e.preventDefault();
        toggleButton(this, this.previousSibling);
        });
    }
    
function toggleButton(btnElement, spanElement){
    if(btnElement.innerHTML= 'edit'){
        btnElement.innerHTML= 'update';
    } 
    else if(btnElement.innerHTML= 'update'){
        btnElement.innerHTML= 'edit';
    }
}

1 个答案:

答案 0 :(得分:1)

所以这里的问题是您的 if 语句使用的是赋值运算符 = 而不是比较运算符 ==。为了使 if...else 语句起作用,请将其替换为 ==。这样的东西就足够了

let editButtons = document.getElementsByClassName("editBtns");
for(let btn =0; btn<editButtons.length; btn++ ){
    editButtons[btn].addEventListener('click', function(e){
        e.preventDefault();
        toggleButton(this);
    });
}

function toggleButton(btnElement){
    if(btnElement.innerHTML == 'update'){
       btnElement.innerHTML= 'edit';
    }
    else
       btnElement.innerHTML= 'update';
    }
}
相关问题