我有以下几点:
<select id="price_select"></select>
我有一个事件处理程序,它调用以下代码:
var selected_option = "one";
var option_one = "<option>Option Contents</option>";
document.getElementById('price_select').innerHTML = eval('option_' + selected_option);
在火狐中运行良好,但在IE6中就不行了。
发布于 2009-05-28 18:26:59
你不能做这样的事情吗?
var selected_option = "one";
var options = { "one": "<option>Option Contents</option>" };
document.getElementById('price_select').innerHTML = options[selected_option];
发布于 2009-05-28 18:52:21
根据marknt15和MartinodF的说法,您应该能够在不使用eval()
的情况下使用原生DOM操作来完成您想要做的事情。
var selected_option = "one";
var options = { "one": {"value": "0", "text":"OptionContents"} };
var e = document.createElement("option");
if(e.innerText) {// IE sets innerText like this
e.innerText = options[selected_option].text;
} else { // W3C sets inner text like this
e.childNodes[0].nodeValue = options[selected_option].text;
}
e.value = options[selected_option].value;
document.getElementById('price_select').appendChild(e);
您可能希望考虑使用功能齐全的JavaScript框架,如jQuery或Prototype,以使这类事情更易于处理。
发布于 2009-05-28 18:30:42
innerHTML在IE6下拉菜单中不起作用,因为它是一个错误。
eval()在IE 6中可以工作
https://stackoverflow.com/questions/924135
复制