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是的,您是对的。这就是字符串的多义性。这是指为变量指定一个引用,还是影响字符串的值?我认为这是他们使字符串不可变的主要原因。