【发布时间】:2022-02-12 17:41:04
【问题描述】:
我知道有很多关于 getElementsByClassName 不起作用的问题,但是我浏览了很多并找不到适合我情况的答案
基本上我有以下代码
<script>
var res = localStorage.getItem('img');
if(res == null){
const myList = ['????', '????', '????', '????', '????', '????', '????', '????', '????', '????', '????', '????', '????', '????', '????', '????', '????', '????'];
res = myList[Math.floor(Math.random() * myList.length)];
localStorage.setItem('img', res);
}
console.log(res);
document.getElementsByClassName("emoji").innerHTML = res
还有几个具有相同类的跨度
<span class="emoji" style="font-size: 40px !important;"></span>
问题是“res”在 span 中不打印任何内容
控制台日志打印一切正常,LS完美存储信息
我试过用身份证
document.getElementsById("emoji").innerHTML = res
而且它工作得很好,但是只有第一个 div (我应该这么想)
在这种情况下我可能做错了什么? 也许我是瞎子,在我的代码中看不到一个非常简单的错误
提前致谢
【问题讨论】:
-
你必须输入
document.getElementsByClassName("emoji")[0].innerHTML,因为 Document 接口的getElementsByClassName方法返回一个类数组对象,其中包含所有具有给定类名的所有子元素。 -
document.querySelectorAll('.emoji').forEach(span => span.textContent = res)
标签: javascript html