jquery
2011-12-29 78 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

相關問題