请参阅下面的代码:
var text=["yuppie", "kkkoseh", "watchdog"];
var messageIndex=0;
function looptext (){
var MessageElement= document.getElementById("happy").innerHTML
var Message=text[messageIndex];
MessageElement=Message;
messageIndex++;
if(messageIndex>=text.length){
messageIndex=0;
}
}
window.onload = function() {
setInterval(looptext, 1000);
};
Run Code Online (Sandbox Code Playgroud)
它不起作用。
但是当我删除.innerhtmlat 变量MessageElement并设置 时MessageElement.innerHtml= Message,它起作用了。
为什么会这样?
抱歉,我是学习 JavaScript 的新手。
因为这就是 JavaScript 中变量和值的工作方式。想象变量就像容器一样。和
var MessageElement = document.getElementById("happy").innerHTML
Run Code Online (Sandbox Code Playgroud)
容器MessageElement将包含一个字符串。后来,随着
MessageElement = Message;
Run Code Online (Sandbox Code Playgroud)
您只需在容器中放入一个新值,覆盖容器先前的值/内容。但它对先前值来自的位置没有任何影响。
但是当我在变量 MessageElement 中删除 .innerhtml 并设置 MessageElement.innerHtml= Message 时,它可以工作。
现在该变量包含对 DOM 元素的引用和
MessageElement.innerHtml = Message
Run Code Online (Sandbox Code Playgroud)
不会为变量分配新值(不会在容器中放入新值),而是使用变量(容器)的值。
| 归档时间: |
|
| 查看次数: |
13735 次 |
| 最近记录: |