2013-06-28 60 views
0
<head> 
<script> 
function whammo() 
{ 
    var i = 1; 
    while(i<=5) 
    { 
     document.write("<h6>Test</h6>"); 
     i=i+1; 
    } 
} 
</script> 
</head> 
<body> 

<div id='page'></div> 
<script> 
document.getElementById('page').innerHTML = whammo(); 
</script> 

</body> 

的whammo函數返回5個H6測試被顯示,但它返回如下: 未定義 測試 測試 測試 測試 測試使用Javascript - 的innerHTML返回undefined然後導致

我做我的測試在這裏: http://www.w3schools.com/jsref/tryit.asp?filename=tryjsref_elmnt_innerhtml

爲什麼undefined被返回?

回答

3

你需要創建一個字符串,並從返回值whammo

function whammo() 
{ 
    var i = 1, html = ''; 
    while(i<=5) 
    { 
     html += "<h6>Test</h6>"; 
     i=i+1; 
    } 
    return html 
} 

演示:Fiddle

+0

你說得對,我想它試圖打印函數返回。現在很明顯。感謝您的幫助。 我希望我有更多的代表,所以我可以upvote你。 – hogarth45

+0

@ user1815010您可以將答案標記爲接受 –

1

這一塊是短(和阿倫P約翰尼拉忘了到底分號)

function whammo() { 
    for (var i=0, html=''; i<=5; i++) { 
     html += '<h6>Test</h6>'; 
    } 
    return html; 
} 

還有一條建議,用jsfiddle來展示你自己的例子:http://jsfiddle.net/vladkras/y2vbk/ 而不是w3school

+0

oups,這太遲了 – vladkras

+0

ArunPJohny儘可能使用OP的代碼以突出顯示他們正在進行的實際更改。重構整個函數會掩蓋已修復的內容。建議使用分號,但不要嚴格*要求。 – jcsanyi

+0

你也結束了一個額外的循環。 – jcsanyi