gpt4 book ai didi

JavaScript 只能部分工作

转载 作者:行者123 更新时间:2023-12-03 05:49:44 24 4
gpt4 key购买 nike

我想创建一个脚本,单击后将删除两个 li 项目上的类,并将类添加到另一个 li 项目。我已经使用了 .className 方法,但它只能部分工作。

<div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
<ul class="nav navbar-nav navbar-right">
<li class="tbh lista">
<a href="#"><img src="images/facebook.png"></a>
</li>
<li class="tbh lista">
<a href="#"><img src="images/mail.png"></a>
</li>
<li class="lista">
<a href="#" onclick="changeClass()" id="phone"><img src="images/phone.png"></a>
</li>
<li class="lista hidden">
<p>text</p>
</li>
</ul>
</div>

这是脚本:

function changeClass(){
var elements = document.getElementsByClassName('tbh');
for (var i = 0, len = elements.length; i <=len; i++) {
elements[i].className='hidden';

console.log('aaa');
}
}

我单击 li 项目一次后,只有一个 li 项目消失,并且出现错误。我必须单击它两次才能正常运行。我找不到错误。这些显示在 console.log 中:aaa
未捕获的类型错误:无法设置未定义的属性“className”

最佳答案

这是因为 document.getElementsByClassName 返回 HTMLCollection 而不是 Array。所以改变你的字符串

var elements = document.getElementsByClassName('tbh');

var elements = Array.from(document.getElementsByClassName('tbh'));

关于JavaScript 只能部分工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40201015/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com