我有一个按钮元素列表,我试图将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';
}
}
所以这里的问题是你的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';
}
}