<button id="friends" class="btn btn-primary large3">Friends</button>
setInterval(changeFriendBtnSize, 1000);
function changeFriendBtnSize() {
let upDown = 'up';
if (document.getElementById('friends').getElementsByClassName('large3')) {
console.log('111');
document.getElementById('friends').classList.remove('large3');
document.getElementById('friends').classList.add('large4');
} else if (document.getElementById('friends').getElementsByClassName('large4')) {
console.log('222');
document.getElementById('friends').classList.remove('large4');
document.getElementById('friends').classList.add('large3');
}
}
在我的控制台日志中,它每秒钟一次又一次地记录111,但从未记录过222。类large3被删除,而large4被添加,但从不相反,为什么?
表达方式
document.getElementById('friends').getElementsByClassName('large3')
总是返回节点列表。该列表可能为空,但仍将是一个对象引用,并且永远不会测试为false
。
据我所知,.getElementsByClassName()
不是您正在寻找的API。您的代码显然想检查按钮当前具有的类;要做到这一点,你要检查的classList
有.contains()
:
if (document.getElementById('friends').classList.contains('large3'))
管他呢。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句