请参阅下面的代码:
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);
};
这不起作用。
但是当我删除.innerhtml
在变量处MessageElement
并设置MessageElement.innerHtml= Message
, 有用。
为什么会这样呢?
抱歉,我是一个学习 JavaScript 的新手。
因为这就是 JavaScript 中变量和值的工作方式。将变量想象成容器。和
var MessageElement = document.getElementById("happy").innerHTML
容器MessageElement
将包含一个string。后来,与
MessageElement = Message;
您只需将一个新值放入容器中,覆盖容器先前的值/内容。但它对先前值的来源位置没有任何影响。
但是当我删除变量 MessageElement 处的 .innerhtml 并设置 MessageElement.innerHtml= Message 时,它就起作用了。
现在该变量包含对 DOM 元素的引用并且
MessageElement.innerHtml = Message
doesn't assign变量的新值(不会将新值放入容器中),它uses变量(容器)的值。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)