Javascript Internet Explorer的Jquery选择框问题

Javascript Internet Explorer的Jquery选择框问题,javascript,jquery,internet-explorer,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="

好的,这可能是一个非常奇怪的问题。我正在编写一个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>
问题就在这里。这段代码在所有浏览器中都能正常工作……IE除外。Internet Explorer(8,如果您好奇的话)正确处理它们,除了$(“select”).val(“digit”)部分。由于某种原因,它不会改变值。javascript解析器在switch和all中正确地导航到该情况,但它拒绝更改该情况下选择框的值。有人有什么想法吗?

你试过了吗

$('select').find('option[value=digit]').prop('selected', true); // and etc.
相反

编辑我可能会自己尝试,因为那只是我自己,但看看jQuery的源代码,不管怎样,它基本上可以为您做到这一点。(也就是说,jQuery不只是尝试在
标记上设置“value”属性,我认为这在FF中有效,但在IE中无效。)

编辑更多我设置了一个测试页面,它在FF和IE8中都可以正常工作。您可以在此处查看我的测试页面:


编辑-2012年7月12日-
.prop()
现在是首选(jQuery 1.6),因此我更新了示例。

您可以尝试将单词“selected”添加到要显示的选项中,而不是更改select标记的值。你会想要你想要看起来像的选项的HTML

<option selected value="word">word</option>
word

单词在标记中的位置无关紧要。

除非它在XHTML中,否则在这种情况下,您希望选择=选择。
$('select').val(“”)
在IE中不起作用。以下内容起作用:
$('select').val($(this.attr('class'))
-如演示中所示
$('select').val($($('option:first',this.val())
@eslist是的,它适用于jQuery的所有现代版本。如果您所说的内容在IE中起作用,那么第一个当然也会起作用,只要传入的值与其中一个
标记的值匹配。是。。对不起,我忘了提,我用的是1.6.1
<option selected value="word">word</option>