jQuery 1.4.4,动态呈现select不会在IE8中呈现选中的选项

时间:2011-12-29 01:51:08

标签: jquery

HTML

<div class="ph">
</div>
<div class="ph">
</div>

的Javascript

$(function(){
    var htmlStr = '\
        <select id="OptionID" name="OptionID">\
            <option value="">--- Select ---</option>\
            <option value="1">Option 1</option>\
            <option value="2">Option 2</option>\
            <option value="3">Option 3</option>\
            <option value="4">Option 4</option>\
            <option value="5">Option 5</option>\
            <option selected="selected" value="6">Option 6</option>\
            <option value="7">Option 7</option>\
            <option value="8">Option 8</option>\
        </select>\
        ';

    $(".ph").html(htmlStr);
});

Example JSFiddle - 未在IE8中选择选项6,在IE9和FF中正常工作。将jQuery版本更改为晚于1.4.4并开始工作。自1.4.4以来这个行为在jQuery中有什么变化?任何解决方法?

修改

解决方法 - 这可行

$(".ph").each(function(){
    $(this).html(htmlStr);
});

Workaround JSFiddle

2 个答案:

答案 0 :(得分:1)

我不知道jQuery的早期版本有什么问题,但解决方法可能是在创建元素后设置选定的值 - 以下在IE8中为我工作:

$(".ph").find("option[value='6']").attr("selected","selected");

或者你想做什么来提高效率。

答案 1 :(得分:0)

使用解决方法

$(".ph").each(function(){
    $(this).html(htmlStr);
});

Workaround JSFiddle