Javascript 最后3行代码的最小更改是什么?

Javascript 最后3行代码的最小更改是什么?,javascript,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.getEle

在不添加或删除任何代码行的情况下,对最后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>

现在,var元素指向与document.getElementById'myDiv'相同的对象,而不是与其innerHTML不同的字符串实例,这意味着当我们修改element.innerHTML时,我们也会修改与document.getElementById'myDiv'.innerHTML相同的对象,这恰好是DOM网页上的对象,而不是字符串的新的和不同的副本

<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');

    var message= produceMessage();

    element.innerHTML=message;
</script>

我认为这应该行得通。最初,您只是获取一个字符串并更改该字符串的副本,而不是更新objects属性

freedompeace肯定是对的,我只是想补充一下你的代码失败的原因


设置element=message不会执行任何操作,因为您最终并没有对元素执行任何操作。变量元素不是对“myDiv”的innerHTML的引用,而是一个容器,其中包含不应打印的文本!。因此,当您说element=message时,您只是更改了容器“element”所包含的内容,而不是更改了“myDiv”的innerHTML。

以26秒的优势击败了我。谢谢大家。所以我的问题是,为什么原始版本不起作用?一个简单的document.writemessage或document.writeelement都可以打印这应该可以打印!因为innerHTML并不指向元素,相反,它们最初指向同一个对象。您将元素的指针更改为新的,但这并没有使innerHTML更改其指针。@LedZeppelin:我已用您问题的答案更新了我的答案。@freedompeace,lol您真的想要最好的答案,是吗?这是作业吗?出于好奇,为什么一行代码不好?在JavaScript中,通常最好使用更小、更干净的代码。这不是家庭作业,一行代码也不错,我只是不明白为什么一个简单的document.writemessage或document.writeelement都会打印这应该打印!但是,您不能设置element=message
<script>
    var element=document.getElementById('myDiv').innerHTML;
    var message=produceMessage();
    element=message;</script>
<script>
    var element=document.getElementById('myDiv');
    var message=produceMessage();
    element.innerHTML=message;</script>
var element=document.getElementById('myDiv');
<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');

    var message= produceMessage();

    element.innerHTML=message;
</script>