Javascript InnerHTML输出错误

时间:2012-07-03 14:20:25

标签: javascript html string tags innerhtml

function test()
{
var formHTML ="";
var frmid ="test123";

var options = ["Test1", "Test2", "Test3", "Test4", "Test5"]
formHTML += "<select id='" + frmid + ">";

console.log(options);

for ( i = 0; i < options.length; i++) {
    var temp = options[i];
    var temp2 = "<option value='" + temp + "'>" + temp + "</option>";
    console.log(temp2);
    formHTML += temp2;
}
formHTML += "</select>";
console.log(formHTML); 
document.getElementById("injected").innerHTML+=formHTML;

}

上面是我在我的页面中制作一个select元素的函数,当我调用这个函数时有一个非常奇怪的问题,它只显示选项test2,test3,test4,test5而不是一个......

当我使用console.log打印出formHTML时,它会显示..

<select id='test123><option value='Test1'>Test1</option>
<option value='Test2'>Test2</option>
<option value='Test3'>Test3</option>
<option value='Test4'>Test4</option>
<option value='Test5'>Test5</option>
</select> 

但是如果运行代码并查看源代码,HTML元素不正确,则第一个元素看起来像

 <option value='test1'> Test1

缺少关闭选项标记

我尝试过调试和更改代码,但这个问题让我很困惑。

有什么遗漏是否有更好的方法来解决这个问题?我试图将它全部存储在一个字符串中,然后出于速度原因操纵DOM。 感谢所有帮助,谢谢

1 个答案:

答案 0 :(得分:4)

你在这一行中有错误

formHTML += "<select id='" + frmid + ">";

将其更改为

formHTML += "<select id='" + frmid + "'>";