这很有趣。在选择下拉菜单中,尽量不要使用jQuery(除了缓解一些娱乐方面的痛苦之外),我遇到了一个问题,它无法让任何当前的浏览器捕获正确的选定选项。这里是我的代码,为重现问题(请记住,没有jQuery来一定能解决问题,但或多或少只是告诉我什么,我做错了的页面。动态JavaScript选择下拉
这其中有我难住了。
<html>
<head>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
</head>
<body>
<div id="select-holder" />
<input id="some-button" type="button">
<script type="text/javascript">
$("#some-button").click(function(){
var select_element = document.createElement('select');
select_element.setAttribute("id", "some-id");
select_element.setAttribute("name", "some-name");
var options = new Array();
for (var i = 0; i < 3; i++){
options.push(new Option("Option " + i, "Value" + i, false, false));
}
options[1].setAttribute("selected", "selected");
for (var option in options){
select_element.appendChild(options[option]);
}
$("#select-holder").append(select_element);
});
</script>
</body>
</html>
此创建HTML是:
<select id="some-id" name="some-name">
<option value="Value0">Option 0</option>
<option value="Value1" selected="selected">Option 1</option>
<option value="Value2">Option 2</option>
</select>
但这里的异常现象是(在Firefox至少),所选择的选项最终被选0,这不是所选的DOM元素在IE6,这一点。选择下拉菜单根本不起作用。
还有一种可行的替代方法,其中包括手动将选项拼凑在一起,该方法适用于我测试过的所有浏览器。
IE6不起作用,但不知道我在乎。如果您对IE6有任何建议,我将不胜感激。这在Firefox中完美运行。 –