最后3行代码的最小变化是什么?

use*_*637 0 javascript

在不添加或删除任何代码行的情况下,最后3行代码的最小更改是什么?

<script>
function produceMessage(){
    var msg= 'This should print';
    return msg;
}

</script>

<div id="myDiv"> This should not print!</div>

<script>
    var element=document.getElementById('myDiv').innerHTML;
    var message= produceMessage();
    element=message;</script>
Run Code Online (Sandbox Code Playgroud)

例如,这不是我正在寻找的,因为它将最后三行代码合并为一行:

document.getElementById('myDiv').innerHTML= produceMessage();
Run Code Online (Sandbox Code Playgroud)

fox*_*oxy 5

<script>
    var element=document.getElementById('myDiv').innerHTML;
    var message=produceMessage();
    element=message;</script>
Run Code Online (Sandbox Code Playgroud)

<script>
    var element=document.getElementById('myDiv');
    var message=produceMessage();
    element.innerHTML=message;</script>
Run Code Online (Sandbox Code Playgroud)

.


你的第一个不起作用的原因是因为你要从元素中分配文本.字符串是原始的,因此它们通过值传递,这意味着将文本的副本复制到其中.myDivvar element.innerHTMLvar element

而不是那样,我们想要一个HTML元素的引用.默认情况下,任何非基本类型都通过Javascript传递.为此,我们使用

var element=document.getElementById('myDiv');
Run Code Online (Sandbox Code Playgroud)

现在,var element指向同一个对象document.getElementById('myDiv'),而不是从它的字符串的不同实例innerHTML,也就是说当我们修改element.innerHTML,我们也修改同一个对象document.getElementById('myDiv').innerHTML,这恰好是对DOM(网页)的一个,而不是字符串的新的和不同的副本.