innerHTML在使用getElementsByClassName()失效问题

16 篇文章 0 订阅

innerHTML失效问题

问题描述

在使用js获取div下的p标签并改变其显示的值时,使用getElementsByClassName()方法无法改变其中的值。
HTML代码如下:

<body>
    <div class="screen">
        <p id="present" class="show">即将开始</p>
    </div>
    <button id="1" onclick="start()">开始</button>
    <button id="2" onclick="end()">结束</button>
</body>
js代码如图所示:
function start() {
        var index=parseInt(Math.random()*10);
        console.log(index); //打印检查是否获得随机数值
        document.getElementsByClassName("show").innerHTML=index;
    }

效果如图所示:
在这里插入图片描述
点击“开始”后我们可以看到打印出了获得的随机数“5”,但p标签中的文字还是“即将开始”,并没有改变成随机数“5”

解决方法

经笔者实验,使用getElementById()方法获取p标签并用innerHTML方法改变其中的值就可以了。
js代码如下:

 function start() {
        var index=parseInt(Math.random()*10);
        console.log(index);
        document.getElementById("present").innerHTML=index;
    }

代码运行结果:
在这里插入图片描述
这时候我们可以看到,p中的内容已经变成我们想要的随机数啦。

后言

其中原因,笔者也暂不清楚,但会继续查资料学习,若有读者知道,也可以在评论区讨论。

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值