2013-04-07 80 views
0

我試圖創建一個包含標題的html頁面,當我們點擊標題時,它會在其下面生成單詞。但我擁有的代碼只能用於第一次點擊,並且它也會刪除標題。所以我的問題是,我怎樣才能讓它在標題下生成文字而不刪除它?如何生成單詞onclick?

<!DOCTYPE html> 
<html> 
<head> 
    <title>function JavaScript</title> 
    <script> 
    var k = 0; 
    function bla(){ 
     var ph = ["red ","blue","black","green","yellow"]; 
     if(k <= ph.length){ 
      document.write(ph[k]); 
      k++; 
     } 
    } 
    </script> 
</head> 
<body> 
    <h1 onclick="bla();">Click here</h1> 
</body> 
</html> 
+0

「生詞」是什麼意思?你只是想打印數組中的每個單詞,還是創建一個包含這些單詞的多個組合的段落? – bfavaretto 2013-04-07 20:44:22

+0

打印文字如段落 – mike10101 2013-04-07 20:49:45

回答

1

運行網頁加載完成將創建一個新頁面,並覆蓋所有當前頁面的內容之後的任何document.write聲明。這幾乎不是你打算髮生的事情。因此,你應該避免的情況下使用document.write像這樣

所以儘量添加元素,然後寫入他們這樣

<h1 onclick="bla();">Click here</h1> 
<span id="test"></span> 

JS:

if(k <= ph.length){ 
     //document.write(ph[k]); 
     document.getElementById("test").innerText+=" "+ ph[k];; 
     k++; 
     } 

JS Fiddle Example

1

這可能成爲你需要的東西:

var k = 0; 

function bla() { 
    var ph = ["red", "blue", "black", "green", "yellow"]; 

    if (k < ph.length) { 
     var p = document.createElement('p'); 
     p.innerHTML = ph[k]; 
     document.body.appendChild(p); 
     k++; 
    } 
} 

http://jsfiddle.net/p5rLX/

它會將每個單詞寫入自己的段落。

+0

是否可以將文字一個接一個地打印出來,並在它們之間留有空格? – mike10101 2013-04-07 20:58:59

+0

@ nooby102030當然,例如像這樣:http://jsfiddle.net/p5rLX/1/ – dfsq 2013-04-07 21:01:15