我几天前刚开始使用javascript,正在尝试不同的方法来打印函数的返回值。
<script>
function produceMessage(){
var msg= 'This should print';
return msg;
}
</script>
<span id="mySpan"></span>
这两行代码都调用了write或createTextNode等方法来打印消息。
document.body.appendChild(document.createTextNode(produceMessage()));
document.write(produceMessage());
然而,这一行没有调用这样的方法,但返回值仍然打印。
document.getElementById('mySpan').innerHTML=produceMessage();
我的直觉告诉我,为了让返回值出现在屏幕上,你需要调用某种方法来打印它,就像下面的例子:
document.getElementById('mySpan').innerHTML=document.write(produceMessage());
然而,这是不正确的,导致未定义的输出
将元素的innerHTML
设置为字符串会导致该元素的HTML被更改为该字符串。
document.getElementById('mySpan').innerHTML=produceMessage();
- 呼叫
produceMessage()
- 设置id为
mySpan
的元素的innerHTML为result
您的函数produceMessage
返回一个字符串,因此该元素的innerHTML设置为This should print
。
你的下一个语句,
document.getElementById('mySpan').innerHTML=document.write(produceMessage());
-
produceMessage()
- 用结果调用
document.write()
,将This should print
追加到文档 - 设置id为
mySpan
的元素的innerHTML为document.write
的返回值
document.write
返回undefined
,因此该元素的innerHTML被设置为undefined
的字符串表示。