Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/374.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 修改存储在变量not working中的innerHTML_Javascript_Html_Dom - Fatal编程技术网

Javascript 修改存储在变量not working中的innerHTML

Javascript 修改存储在变量not working中的innerHTML,javascript,html,dom,Javascript,Html,Dom,我想将页面的显示区域存储在变量中(display,在代码中),即示例中displaydiv的innerHTML,但当我这样做时,我根本无法修改其内容 函数存储(){ var display=document.getElementById(“display”).innerHTML; display=“你好”; } 函数notStored(){ document.getElementById(“display”).innerHTML=“Hello”; } 存储在变量中 不存储在变量中 innerH

我想将页面的显示区域存储在变量中(
display
,在代码中),即示例中
display
div的innerHTML,但当我这样做时,我根本无法修改其内容

函数存储(){
var display=document.getElementById(“display”).innerHTML;
display=“你好”;
}
函数notStored(){
document.getElementById(“display”).innerHTML=“Hello”;
}
存储在变量中
不存储在变量中

innerHTML属性是一个简单的字符串,因此它是不可变的,而且,您只是给变量赋值,而不是更新当前HTML内容

您需要将新值分配给属性
innerHTML

函数存储(){
document.getElementById(“display”).innerHTML=“你好”;
}
函数notStored(){
document.getElementById(“display”).innerHTML=“Hello”;
}
存储在变量中
不存储在变量中

这是因为您为
显示
变量指定了一个新值。您要做的是将
display
innerHTML
设置为一个变量,例如
stored
。通过这样做,您将所需的
innerHTML
存储为一个变量

函数存储(){
var stored=“你好”;
var display=document.getElementById(“display”).innerHTML=stored;
}
函数notStored(){
document.getElementById(“display”).innerHTML=“Hello”;
}
存储在变量中
不存储在变量中

元素的innerHTML
是一个字符串,当您将该字符串读取到变量时,对该元素的引用不会保留。您不能影响对变量的引用。您在furst块中所做的是复制元素的innerHTML。@谢谢。这只是字符串的情况吗?我觉得很奇怪,因为Java中不是这样。是的,所有原语的行为方式都是一样的。我想它们在Java中也是…@Teemu字符串在Java中不是原语。但是Js中有对象的引用系统吗?哦,你是对的,字符串是不可变的。但如果它是一个可变对象,我能将它存储在变量上吗?Javascript中是否有像Java中那样的引用系统?@JacopoStanchi您可以将其存储在变量中(您不能做的是修改它),JS中的引用类似于Java,每个变量都是指向内存中某个值的指针。除非我假定基元类型,否则字符串在Java中不是基元。@JacopoStanchi是的,您是对的。这就是字符串的多义性。这是指为变量指定一个引用,还是影响字符串的值?我认为这是他们使字符串不可变的主要原因。