javascript正在组合我的标签标签

时间:2017-05-28 03:24:56

标签: javascript html-form

我想让我的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。我不小心把它放在那里,甚至没有意识到它在那里,这就是问题

1 个答案:

答案 0 :(得分:0)

由于代码中存在此行,因此正在组合标签

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

由于text2 = text1,它正在组合两个标签。

请删除text2=text1

Here is a fiddle link

我认为它应该是document.createElement("INPUT")而不是document.createElement("input")。出于某种原因,我得到的错误不能为input的setAttribute

&#13;
&#13;
//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);
&#13;
<div id="form">
</div>
&#13;
&#13;
&#13;