2017-05-28 52 views
0

我想讓我的JavaScript爲我創建一個窗體。它需要有一定數量的行,這取決於來自警告框的數量,並且我正在循環運行此代碼。JavaScript是結合我的標籤標籤

//creates 4 elements for the form 
    var name = document.createElement("input"); 
    var text1 = document.createElement("label"); 
    var initiative = document.createElement("input"); 
    var text2 = text1 = document.createElement("label"); 
    //gives the input tags the type and name values 
    name.setAttribute("type", "text"); 
    initiative.setAttribute("type", "text"); 
    name.setAttribute("name", "name"); 
    initiative.setAttribute("name", "init"); 
    //gives the 2 span elements text 
    text1.appendChild(document.createTextNode(" has ")); 
    text2.appendChild(document.createTextNode(" for initiative.")); 
    text2.appendChild(document.createElement("br")); 
    //adds the elements to the form 
    document.getElementById("form").appendChild(name); 

    document.getElementById("form").appendChild(text1); 

    document.getElementById("form").appendChild(initiative); 

    document.getElementById("form").appendChild(text2); 

這裏的代碼應該工作,但實際表格有這樣

<input type="text" name="name> 
<input type="text" name="init"> 
<label> has </label> 
<label> for initiative </label> 

但基於JavaScript的順序上的元素,它應該是

<input type="text" name="name> 
<label> has </label> 
<input type="text" name="init"> 
<label> for initiative </label> 

編輯:我沒有意識到text1 = text2。我不小心把它放在那裏,甚至沒有意識到它的存在,那就是這是因爲目前這個行代碼

var text2 = text1 = document.createElement("label");

由於結合標籤問題

+1

你應該張貼您所期望的形式,看起來像,以及您實際得到了什麼。你也可以發現將表單的小腸作爲一個字符串構建起來更簡單,更簡單,然後用'innerHtml'將其打散。 – pvg

+0

代碼和結果匹配在一起。你期望什麼結果? – HTCom

+0

我應該得到的形式應該從最後4個javascript命令清晰可見,但它應該是輸入,文本,輸入,文本 –

回答

0

文本2 =文本1,它結合了兩個標籤。

請刪除text2=text1

Here is a fiddle link

此外,我認爲應該是document.createElement("INPUT"),而不是document.createElement("input")。出於某種原因,我得到的錯誤不能爲的setAttribute input

//creates 4 elements for the form 
 
var name1 = document.createElement("INPUT"); 
 
var text1 = document.createElement("label"); 
 
var initiative = document.createElement("INPUT"); 
 
var text2 = document.createElement("label"); 
 
//gives the input tags the type and name values 
 
name1.setAttribute("type", "text"); 
 
initiative.setAttribute("type", "text"); 
 
name1.setAttribute("name", "name"); 
 
initiative.setAttribute("name", "init"); 
 
//gives the 2 span elements text 
 
text1.appendChild(document.createTextNode(" has ")); 
 
text2.appendChild(document.createTextNode(" for initiative.")); 
 
text2.appendChild(document.createElement("br")); 
 
//adds the elements to the form 
 
document.getElementById("form").appendChild(name1); 
 

 
document.getElementById("form").appendChild(text1); 
 

 
document.getElementById("form").appendChild(initiative); 
 

 
document.getElementById("form").appendChild(text2);
<div id="form"> 
 
</div>

+0

downvoter,請解釋一下? – Santosh

+0

我的猜測是他們對這個不正確的語句有問題:'因爲text2 = text1,它將兩個標籤結合在一起.'我看到你想說什麼,但不認爲它出來了,別人正在讀它 – vol7ron

+0

但是如果你運行這個代碼片段,沒有'text2 = text1',那麼這些元素的順序就像OP在評論 – Santosh