2012-06-14 52 views
0

最初我以爲這是一個CSS問題,但我構建了一個小樣本來重現這個問題。 值:通過appendChild方法添加到下拉列表框中的項目不會顯示在IE8下

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml" > 
    <html xmlns="http://www.w3.org/1999/xhtml" > 
    <head> 
     <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.5/jquery.min.js"></script> 

    <script type="text/javascript"> 
     $(document).ready(function() { 
      alert("Thanks for visiting!"); 
      var gridCommandBox = $('#GridCommands')[0]; 

      if (gridCommandBox.options.length == 0) { 

       gridCommandBox.options.add(new Option("<Select Command>", "")); 
       var clipGroup = document.createElement("optgroup"); 
       clipGroup.label = "Copy To Clipboard..."; 
       clipGroup.appendChild(new Option("Value1", "Value1")); 
       clipGroup.appendChild(new Option("Value2", "Value2")); 
       clipGroup.appendChild(new Option("Value3", "Value3")); 
       gridCommandBox.appendChild(clipGroup); 
      } 
     }); 
    </script> 
</head> 
<body> 

<table> 
<tr><td><select id="GridCommands"></select></td></tr> 
</table> 

</body> 
</html> 

任何想法:值1,2和3,如果您使用IE8不顯示? 謝謝 最大

回答

0

Option對象是與HTML中的標記關聯的HTML DOM對象。您正在直接實例化一個Option對象,並嘗試將此JavaScript對象附加到另一個DOM元素。

雖然這可能適用於某些瀏覽器,但您應該使用document.createElement('option')來創建選項。如果您使用新的選項方法,則可能需要在之後添加history.go(0)以強制瀏覽器刷新選擇選項。

+0

你的建議指出了我的正確方向。 – Max

+0

這裏是我使用的一個很好的鏈接: http://blog.gridworlds.com/js/how-to-create-optgroups-in-javascript 謝謝! – Max

相關問題