我想让我的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。我不小心把它放在那里,甚至没有意识到它在那里,这就是问题
答案 0 :(得分:0)
由于代码中存在此行,因此正在组合标签
var text2 = text1 = document.createElement("label");
由于text2 = text1,它正在组合两个标签。
请删除text2=text1
我认为它应该是document.createElement("INPUT")
而不是document.createElement("input")
。出于某种原因,我得到的错误不能为input
的setAttribute
//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;