0

我在使用以下脚本时遇到问题,

$('#colours li a').click(function(e) {

    $('option').attr("selected", false);

    var selected = $(this).parent("li");
    var colour = selected.attr("class");
    colour = colour.replace("rounded ", "");

  alert(colour);

    $('option[value=' + colour + ']').attr('selected',true);


    if($("#" + colour).hasClass("active")) { return; }

    var active = $(".active");
    var next = $("#" + colour);

    $('#colours li').removeClass("active");
    selected.addClass("active");

    $('option[value=' + colour + ']').attr('selected',true);
    e.preventDefault();
});

基本上这是在点击时它应该在隐藏的选择中选择一个值,但是在 IE8 中这并没有发生,这是为什么呢?

4

1 回答 1

1

有一种更简单的方法可以option通过更改 parent 的值来更改 selected select

$('select').val(colour)将取代这两个attr()电话。更改 a 的值会select自动处理selected更改

attr()两者都不是首选方法selected,应该使用prop(). 这可能是您遇到问题的根源

于 2012-11-22T16:34:55.640 回答