使用Internet Explorer的Jquery选择框问题

Cop*_*per 2 javascript jquery internet-explorer

好吧,这可能是一个非常奇怪的问题.我正在编写一个Web应用程序,我想更改某个选择框的值:

<select name="type" class="type">
<option value="word">word</option>
<option value="digit">digit</option>
<option value="letter">letter</option>
<option value="single">single character</option>
<option value="space">space</option>
</select>
Run Code Online (Sandbox Code Playgroud)

在我的代码中我有这个:

switch ( target ) {
case "d":
$("select").val('digit');
break;
case "w":
$("select").val('word');
break;
case "s":
$("select").val('space');
break;
}
Run Code Online (Sandbox Code Playgroud)

这是问题所在.此代码在所有浏览器中都可以正常工作...除了IE之外.Internet Explorer(8,如果你很好奇)除了$("select").val("digit")部分之外,它们都正确处理它们.由于某种原因,它不会改变价值.javascript解析器在交换机中正确导航到该情况,但它拒绝更改该情况的选择框的值.有人有主意吗?

Poi*_*nty 5

你有没有尝试过

$('select').find('option[value=digit]').prop('selected', true); // and etc.
Run Code Online (Sandbox Code Playgroud)

代替?

编辑好我可能会尝试自己,因为那只是我,但是看看jQuery源代码它无论如何都会为你做这件事.(也就是说,jQuery不只是尝试在<select>标签上设置"value"属性,我认为它在FF中工作,但不适用于IE.)

编辑得更好我设置了一个测试页面,它在FF和IE8中都适用于我.你可以在这里查看我的测试页面:http://gutfullofbeer.net/select.html

编辑 - 2012年7月12日 - .prop()现在是首选(jQuery 1.6),所以我已经更新了这个例子.