我有一个按钮元素列表,我试图将 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';
}
}
答案 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';
}
}