无法设置所选属性JQuery。 JQuery Dropdown

时间:2010-03-11 16:54:09

标签: javascript jquery

以下代码在ie6中对我不起作用,但不出所料,它在其他所有浏览器中都有效:

$( '#myDropdown')VAL( '值');

我不知道为什么会这样。

有什么想法吗?

3 个答案:

答案 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中设置。