【发布时间】:2011-06-26 14:21:43
【问题描述】:
当我使用 Chrome 的 Inspect Element 功能查看我以编程方式设置了选定选项的<select> 元素时,选定的<option> 不显示selected="selected"。一切正常,我只是无法查看在检查器视图中选择了哪些选项。
这是正确的行为吗?似乎不仅应该在 DOM 的内部表示中更新所选元素,还应该将 selected="selected" 添加到可视表示中。
以下示例使用几种不同的方式设置<option> 的selected 属性:
http://jsfiddle.net/ScTTY/
基本上,我正在使用此代码的变体:
var current = new Date().getFullYear();
var year1 = this.$("select.year1");
for (var i=0; i<100; i++) {
var option = $("<option>",{
value: current - i,
text: current - i,
selected: (i==17 ? "selected" : "")
});
year1.append(option);
}
但是,我使用不同的方式设置 selected 选项:
selected: (i==17 ? true : false)
if (i==17) option.attr("selected","selected");
if (i==17) option[0].selected = true;
if (i==17) option[0].selected = "selected";
所有这些方法都会创建一个<select>,其中包含从 1912 到 2011 的年份,并选择了 1994。
【问题讨论】:
-
也许您可以尝试关闭和打开检查窗口。
-
@JCOC611:没有区别,至少在 OSX 上的 Chrome 9.0.597.102 中对我而言
标签: javascript jquery html google-chrome select