2016-04-28 47 views
1
<script > 

    for(i=0;i<=9;i++) 
    { 

</script> 

    <input type="button" value="1"/> 

<script type="text/javascript">  

    } 

</script> 

如果我使用document.write它會打印10次爲什麼只有1次按鈕?在html中沒有documet.write寫html html代碼

+0

因爲按鈕被放置在一個循環內。 – rhavendc

+0

檢查控制檯是否有錯誤......並從JavaScript的基本知識開始! – Rayon

+0

我想添加按鈕10次,如果我會把這樣的標籤在PHP中它將添加按鈕10次,但在JavaScript中我需要把document.write想知道爲什麼 –

回答

1

JavaScript並沒有以同樣的方式做PHP的行爲。無論你在<script>標籤之間放置什麼,都是一個腳本。

所以你有兩個獨立的腳本: 此:

for(i=0;i<=9;i++) 
{ 

這一個:

} 

試想一下,如果你放在這兩個腳本分成兩個獨立的文件,會發生什麼?這是正確的,兩者都會由於語法錯誤而失敗。如果你看看控制檯,你會看到我在說什麼錯誤。

如果要打印10個按鈕做這樣的事情:

<div id="mainDiv"> 

</div> 

<script> 
    var mainDiv = document.getElementById('mainDiv'); 
    for(var i=0; i<10; i++){ 
     mainDiv.innerHtml += "<input type='button' value='1'>"; 
    } 
</script> 
1

這些腳本標記是單獨的腳本。您可以使用第一個中定義的函數或變量,但不能有跨越兩者的for循環。

之間的html也不在腳本中。它看起來像你試圖使用script標籤,就好像它們是<?php?>那樣。

替代document.write,被設置元素的innerHTML的內容或將一個元素增加到所述DOM:

for(i=1;i<10;i++){ 
    var btn = document.createElement("button");  
    document.body.appendChild(btn); 
} 
+0

我想添加按鈕10次,如果我會把標籤像這樣在PHP中它將添加按鈕10次,但在JavaScript中我需要把document.write想知道爲什麼 –

+0

是的,我想你是用PHP混淆它。 沒有_why_,JavaScript只是不能這樣工作。 最好的解決方案是將其添加到DOM。 –

+0

嗯現在我明白了..謝謝:)! –

0

HTML不是模板引擎PHP因此不能一個碼塊分成多個腳本標籤。每個代碼塊必須完全放置在<script></script>標籤對中。

如果你的目的是生成的JavaScript 10個按鈕,請去document.write選項

+0

__「請使用document.write選項」__否... – Rayon

+0

此選項是否有其他限制? – duonglk

+0

還有很多! – Rayon

0

您正在尋找某種服務器端模板的。記住JavaScript在客戶端上運行。