jquery
2011-12-29 83 views 1 likes 
1

HTML的jQuery 1.4.4,动态呈现的选择在IE8不会呈现所选选项

<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 - 在IE9在IE8不会选择方案6,工作正常和FF。将jQuery版本更改为晚于1.4.4,并开始工作。自1.4.4以来,jQuery在此行为中发生了什么变化?任何解决方法?

编辑

解决方法 - 这工作

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

Workaround JSFiddle

回答

0

使用。解决方法

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

Workaround JSFiddle

1

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

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

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

+0

这是不是一种选择,因为它是未知的什么HTML包含。这个HTML通过AJAX请求获取并被动态呈现。现在我正在使用我发布的解决方法,直到应用程序可以升级到最新版本的jQuery。现在的问题实际上是关于什么改变了,很高兴知道原因。 – 2011-12-29 03:15:21

+0

够公平的。我在看到您已更新问题之前发布了此答案。至于什么改变了,在我看来,旧的行为是不正确的,新的行为是正确的,那么这不就足够了吗? – nnnnnn 2011-12-29 03:39:00

相关问题