2014-01-16 60 views
1

我有對navigator.platform,如果Linux的armv6i(樹莓PI)檢查我需要它兩個div(屏幕鍵盤)添加到HTML頁面使用JavaScript添加div來

這是一個JavaScript我JavaScript邏輯:

function systemdetect() 
{ 
systemname=navigator.platform; 

if (systemname.indexOf("Linux armv6l")!=-1) { 
    systemname="pi" 
    document.write("<p>this is a test.</P>") 
    } 

else {if (systemname.indexOf("Win32")!=-1) { 
    systemname="MS 32" 
    document.write("<p>this is a Win32 tes.</P>") 

} 

else {systemname="N/A"}}; 

} 

這是我需要添加的div之一,另一種是相同的只是keypad2和NUM2

<div id="keypad" style=" display:none;" > 
<input type="button" value="7" onclick="number('num').value+=7;"class="number"/> 
<input type="button" value="8" onclick="number('num').value+=8;" class="number"/> 
<input type="button" value="9" onclick="number('num').value+=9;" class="number"/><br/> 
<input type="button" value="4" onclick="number('num').value+=4;" class="number"/> 
<input type="button" value="5" onclick="number('num').value+=5;" class="number"/> 
<input type="button" value="6" onclick="number('num').value+=6;" class="number"/><br/> 
<input type="button" value="1" onclick="number('num').value+=1;" class="number"/> 
<input type="button" value="2" onclick="number('num').value+=2;" class="number"/> 
<input type="button" value="3" onclick="number('num').value+=3;" class="number"/><br/> 
<input type="button" value="X" onclick="number('keypad').style.display='none'"class="number"/> 
<input type="button" value="0" onclick="number('num').value+=0;" class="number"/> 
<input type="button" value="&larr;" 
onclick="number('num').value=number('num').value.substr(0,number('num').value.length-1);" class="number"/> 
</div> 

我知道文件撰寫是不正確的。我想我需要做一些類型的document.createElement。和element.appendchild(document.createTextNode ...但我不知道,我試過的東西比document.write少。

我可以讓文檔寫「寫」完整的HTML頁面,但接縫像使用斧頭做心臟手術。

感謝您的幫助,您可以提供。

+0

將解決Jquery的工作嗎?如果是,那麼你可以做$(「#id」)。append(「你的div」) – tgpatel

+0

我使用webpy,我不知道如何讓jquary使用它或如何使用jquary。我正在爲Javascript HTML解決方案跳躍。保存學習jquary一天。 – Jay42

回答

5

使用document.body.appendChild(newElem)

function systemdetect() { 
    systemname = navigator.platform; 
    var test = document.createElement("p"); 
    if (systemname.indexOf("Linux armv6l") != -1) { 
    systemname = "pi"; 
    test.innerHTML = "this is a test."; 
    } 
    else if (systemname.indexOf("Win32") != -1) { 
    systemname = "MS 32"; 
    test.innerHTML = "this is a Win32 test."; 
    } 
    else { systemname="N/A"; } 
    if(test.innerHTML != "") document.body.append(test); 
} 

Demo

如果要大量的投入增加了DIV中,而不是使用像這樣

var keypad1 = document.createElement("div"); 
keypad1.innerHTML = "...Your inputs' HTML here..."; 
document.body.appendChild(keypad1); 

Demo

+0

如果輸入(15 ish),我確實需要「大」的金額,但我無法弄清楚如何讓Keypad1代碼工作,任何機會,你可以刷新我的一點點。特別是如何添加多個輸入(2或3應該給我的想法),以及它如何適合javacript,(if語句之前或之前的所有內容,如var test?)謝謝 – Jay42

+0

我更新了我的回答,其中的HTML –

+0

非常感謝你的幫助 – Jay42

0
var keypad = document.createElement("div"); 

//wrap the whole code for the input fields into an array, it will be converted into a string later 
var inputFields = [<input type="button" value="7" onclick="number('num').value+=7;"class="number"/> 
<input type="button" value="8" onclick="number('num').value+=8;" class="number"/> 
<input type="button" value="9" onclick="number('num').value+=9;" class="number"/><br/> 
<input type="button" value="4" onclick="number('num').value+=4;" class="number"/> 
<input type="button" value="5" onclick="number('num').value+=5;" class="number"/> 
<input type="button" value="6" onclick="number('num').value+=6;" class="number"/><br/> 
<input type="button" value="1" onclick="number('num').value+=1;" class="number"/> 
<input type="button" value="2" onclick="number('num').value+=2;" class="number"/> 
<input type="button" value="3" onclick="number('num').value+=3;" class="number"/><br/> 
<input type="button" value="X" onclick="number('keypad').style.display='none'"class="number"/> 
<input type="button" value="0" onclick="number('num').value+=0;" class="number"/> 
<input type="button" value="&larr;" 
onclick="number('num').value=number('num').value.substr(0,number('num').value.length-1);" class="number"/>]; 

/*The join() method converts all array elements to strings and concatenates them. 
join() takes optional character or string as argument that is used to separate one element of the array from the next in the returned string. If this argument is omitted, a comma is used.*/ 

keypad.innerHTML = inputFields.join(""); 

//add the created div to the body 
document.body.appendChild(keypad); 
+0

非常感謝您的意見。我喜歡你的代碼的可讀性。當我有機會'編輯'我的代碼時,我將嘗試並實現它,因爲它很容易讀取。 – Jay42