2011-12-01 96 views
2

動態數據假設我有字母字符數組:生成使用Javascript

var qwerty = [['q', 'w', 'e', 'r', 't', 'y', 'u', 'i', 'o', 'p'], ['a', 's', 'd', 'f', 'g', 'h', 'j', 'k', 'l'], ['z', 'x', 'c', 'v', 'b', 'n', 'm']]; 

我將如何呈現出來的三排喜歡用JS傳統的鍵盤上,而不訴諸這樣的:

<input type='button' value='Q' id='bt1'/> 
<input type='button' value='W' id='bt2'/> 
<input type='button' value='E' id='bt3'/> 
<input type='button' value='R' id='bt4'/> 
<input type='button' value='T' id='bt5'/> 
<input type='button' value='Y' id='bt5'/> 
<input type='button' value='U' id='bt7'/> 
<input type='button' value='I' id='bt8'/> 
<input type='button' value='O' id='bt9'/> 
<input type='button' value='P' id='bt10'/> 
<br> 
<input type='button' value='A' id='bt11'/> 
<input type='button' value='S' id='bt12'/> 
<input type='button' value='D' id='bt13'/> 
<input type='button' value='F' id='bt14'/> 
<input type='button' value='G' id='bt15'/> 
<input type='button' value='H' id='bt16'/> 
<input type='button' value='J' id='bt17'/> 
<input type='button' value='K' id='bt18'/> 
<input type='button' value='L' id='bt19'/> 
<br /> 
... 

非常感謝提前!

+0

您幾乎可以使用任何元素來表示它們,從div到按鈕和跨度。你應該選擇具有更多語義意義的解決方案。如果你想要一個鍵盤,那麼按鈕就是要走的路。 – Ben

回答

6

你會使用嵌套循環:

var counter = 0; 
for (var i = 0; i < qwerty.length; i++) { 
    for(var j = 0; j < qwerty[i].length; j++) { 
     document.write("<input type='button' value='" + qwerty[i][j] + "' id='bt" + counter++ + "'/>"); 
    } 
    document.write("<br>"); 
} 

IF你有興趣,這裏是爲增加新的按鈕清潔jQuery的解決方案,所以您不必使用document.write

<div id="qwertDiv" /> 

var counter = 0, newDiv; 
for (var i = 0; i < qwerty.length; i++) { 
    newDiv = $("<div />"); 
    for(var j = 0; j < qwerty[i].length; j++) { 
     newDiv.append($("<input type='button' />") 
         .val(qwerty[i][j]) 
         .attr("id", "bt" + counter++)); 
    } 
    $("#qwerty").append(newDiv).append("<br>"); 
}