在IE中使用.innerHTML添加选项元素

时间:2011-12-19 05:54:35

标签: javascript internet-explorer innerhtml

我有一个txt变量,其中包含我需要为下拉列表设置的html字符串。该代码在除IE之外的所有其他浏览器中都能正常工作。基本代码如下所示。

while循环使用更多代码

document.getElementById('theSelector').innerHTML = txt;

其中'theSelector'是我的表单选择元素的ID

所以基本上IE浏览器没有生成我的列表。如果您想查看源代码和我正在做的所有事情,我会在下面发布我的网页。如果你想看看网站应该如何运作,只需在另一个不是的浏览器中运行它。

http://1wux.com/Resume/signUp.html

3 个答案:

答案 0 :(得分:4)

根据您的评论,它没有生成您的列表,而Jared评论您尝试添加选项,请尝试以下内容:

var list = document.getElementById('theSelector');
var newOp = document.createElement("option");
newOp.text = "Txt";
newOp.value = "1";
list.options.add(newOp);

修改

根据Jared的评论,以下可能会为您提供一些性能优势:

list.options[list.options.length] = newOp;

答案 1 :(得分:4)

正如其他人所提到的,这是所有IE版本中的错误。我会使用@AdamRackis的解决方案,但如果你必须使用字符串构建HTML,唯一的解决方法似乎是使用outerHTML并在字符串中包含你的<select>

演示:http://jsfiddle.net/ThinkingStiff/TWYUa/

HTML:

<select id="select"></select>

脚本:

var options = '<select id="select"><option>one</option><option>two</option></select>';
document.getElementById( 'select' ).outerHTML = options;

答案 2 :(得分:-1)

使用Jquery

$('#theSelector').html(txt);