Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/376.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么div标记innerHTML属性没有';当我把它赋给一个变量时,它不会改变吗?_Javascript_String_Object - Fatal编程技术网

Javascript 为什么div标记innerHTML属性没有';当我把它赋给一个变量时,它不会改变吗?

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

我正在编写一个名为increment()的JavaScript函数,其中div中的内容将显示用户在表单中按下提交按钮的次数。但我的JavaScript函数不起作用:

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