无法修改span的innerText或innerHTML?JS DOM操作赋值不生效求助
问题原因
你修改无效的核心问题是对基础类型赋值的逻辑理解有偏差:
- 你执行
let score = document.querySelector("#score-span").innerText时,是把span节点的innerText字符串值拷贝了一份赋值给score变量,这个变量和原DOM节点没有任何绑定关系 - 后续你修改
score变量的值,只是修改了内存里的字符串副本,不会同步更新到原DOM节点上,所以页面不会有对应变化
修正方案
直接操作DOM节点的innerText属性即可,修改后的transfer函数参考:
function transfer(key, value) { // 先拿到DOM节点本身,而不是只拿它的innerText值 const scoreSpan = document.querySelector("#score-span") scoreSpan.innerText = `${scoreSpan.innerText} ${value}` const nameSpan = document.querySelector("#name-span") nameSpan.innerText = `${nameSpan.innerText} ${key}` console.log(nameSpan.innerText) }
其他冗余代码说明
你JS第一行let submit = document.querySelector("#submit")是无效代码:你的提交按钮没有设置id="submit",这个变量永远是null,且你后续也没有用到这个变量,可以直接删除。
内容的提问来源于stack exchange,提问作者berboş
相关产品推荐
相关产品推荐

