如何在 IE9 中使用 JQuery 设置选择框的默认值?

Posted

技术标签:

【中文标题】如何在 IE9 中使用 JQuery 设置选择框的默认值?【英文标题】:How to set the default value of a select box using JQuery in IE9? 【发布时间】:2011-09-13 20:21:06 【问题描述】:

我有以下选择框。

<select id="selId">
     <option id='1' value='1'>1</option>
     <option id='2' value='2'>2</option>
     <option id='3' value='3'>3</option>
     <option id='4' value='4'>4</option>
     <option id='5' value='5'>5</option>
</select>

在 jquery 中,我正在执行以下操作以在选择框中选择值 2。:

...
$("select#selId").find("option#2").attr("selected", "selected");
...

相同的代码在 IE8 和 Firefox 中将选择框中的值设置为 2。 但它不适用于IE9。

我使用的是 JQuery 1.6.1 版本

【问题讨论】:

您使用的是哪个版本的 jQuery? v1.5.1 是support IE9 作为***浏览器的第一个版本。 【参考方案1】:

不用设置selected 属性,只需使用.val("2")。

请看这里:jsFiddle

【讨论】:

请从 $('document') 中删除 '' 没有就是没有?为什么不? $(document).ready(function() );但不是 $('document').ready(function() );并且至少当我单击链接时,您的 jsfiddle 不起作用。一旦我删除'',它加载正常。【参考方案2】:

换一个

$("select#selId").find("option#2").attr("selected", "selected");

进入这个

$("select#selId").find("option#2").attr("selected", true); 

【讨论】:

【参考方案3】:

无论如何,如果您想保持"SELECTED" 属性,这在 IE9 上运行良好

$("select#selId").find("option#2").attr("selected", true);

http://jsfiddle.net/cqENs/

【讨论】:

+1 不错的答案。一种更好的方法来实际维护属性。我实际上认为 val() 会在幕后做,但事实并非如此!【参考方案4】:

您可以使用 val() 来设置选项 - 请参阅 Change the selected value of a drop-down list with jQuery

【讨论】:

以上是关于如何在 IE9 中使用 JQuery 设置选择框的默认值?的主要内容,如果未能解决你的问题,请参考以下文章

“jquery”中怎么让下拉框不能选择?

如何删除选择框的所有选项,然后添加一个选项并使用 jQuery 选择它?

是否可以设置选择框的样式? [关闭]

如何设置扩展的“选择”元素的最大高度(jQuery 插件)

使用 IE9、jquery 插件/html 验证的占位符问题

如何在使用 Jquery Autocomplete 和 JSP 时设置自动完成输入框的值