Javascript 为什么div标记innerHTML属性没有';当我把它赋给一个变量时,它不会改变吗?
我正在编写一个名为increment()的JavaScript函数,其中div中的内容将显示用户在表单中按下提交按钮的次数。但我的JavaScript函数不起作用:Javascript 为什么div标记innerHTML属性没有';当我把它赋给一个变量时,它不会改变吗?,javascript,string,object,Javascript,String,Object,我正在编写一个名为increment()的JavaScript函数,其中div中的内容将显示用户在表单中按下提交按钮的次数。但我的JavaScript函数不起作用: let div_content = document.getElementById('d').innerHTML; function increment(){ counter++; div_content = counter; } 以下是HTML代码: <form onsubmit="increme
let div_content = document.getElementById('d').innerHTML;
function increment(){
counter++;
div_content = counter;
}
以下是HTML代码:
<form onsubmit="increment(); return false;">
<input type="submit" value="Submit" id="btn">
</form>
<div id = "d">
0
</div>
更新:
谢谢你的帮助。我终于明白发生了什么:
这行代码
div\u content=document.getElementById('d').innerHTML代码>
创建字符串变量而不是对象。这就是为什么div标签中的内容没有改变
正确的JavaScript代码必须是:
let counter = 0;
const div_content = document.getElementById('d');
function increment(){
counter++;
div_content.innerHTML = counter;
}
在第一个函数中,您忘记将变量命名为right
约尔代码:
let div_content = document.getElementById('d').innerHTML;
function increment(){
counter++;
div = counter;
}
正确的代码必须是:
let div_content = document.getElementById('d').innerHTML;
function increment(){
counter++;
div_content = counter;
}
我已经修改了JS代码,但我不明白为什么
当我删除变量div_内容时,它起作用了
let counter = 0;
function increment(){
counter++;
document.getElementById('d').innerHTML = counter;
}
根据您的定义,您的div\u内容
只是一个静态字符串:
let div_content = document.getElementById('d').innerHTML;
这只是将innerHTML
的值分配给变量div\u content
。它现在在任何方面都与元素完全无关。因此,将该字符串更改为计数器将更改该字符串,但不会更改#d
的内容:
let计数器=1;
//REM:div_content此时保存innerHTML的字符串值;
让div_content=document.getElementById('d').innerHTML;
控制台日志(div_内容);
//REM:div_内容现在保存计数器的值
div_内容=计数器;
控制台日志(div_内容);
//雷姆:但是#d的内部HTML从未改变过
0
它应该是div\u content.innerHtml=counter
innerHtml
不是有效的属性。尝试。始终检查错误控制台。
div_content = counter; //REM: Assuming div was a typo