以下代码在ie6中对我不起作用,但不出所料,它在其他所有浏览器中都有效:
$( '#myDropdown')VAL( '值');
我不知道为什么会这样。
有什么想法吗?
答案 0 :(得分:3)
您可能需要执行类似
的操作$("#myDropdown > option[selected]").removeAttr("selected");
$("#myDropdown > option[value='value']").attr("selected","selected");
只是一个猜测。
答案 1 :(得分:2)
我最终必须设置select的innerHTML。
我提出了以下扩展方法,该方法具有IE6的特殊例程:
$.fn.setDropDownValue = function(valueToSet) {
if ((!this[0].options) || (this[0].options.length == 0))
return;
if ($.browser.msie && $.browser.version == 6.0) {
var open = '<OPTION value=\'';
var html = '';
for (var i = 0; i < this[0].options.length; i++) {
var opt = $(this[0].options[i]);
html += open + $(opt).val() + '\'';
if (opt.val() == valueToSet) {
html += ' selected';
}
html += '>' + opt.html() + '</OPTION>';
}
$(this).html(html);
} else {
this.val(valueToSet);
}
};
答案 2 :(得分:1)
这是一个已知的IE 6错误。解决方法是做类似的事情:
options[1].setAttribute('selected', true)
或延迟它的事情:
setTimeout("$('#myDropdown').val('" + value + "')",1);
或者只是将它包装在try / catch块中并忽略该异常 - 该值仍然在IE6中设置。