0

最初我认为这是一个 CSS 问题,但我构建了一个小样本来重现该问题。如果使用 IE8,则不显示值:Value1、2 和 3:

<!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>

有任何想法吗?谢谢马克斯

4

1 回答 1

0

Option 对象是与 HTML 中的标记相关联的 HTML DOM 对象。您正在直接实例化一个 Option 对象并尝试将此 JavaScript 对象附加到另一个 DOM 元素。

虽然这可能适用于某些浏览器,但您应该使用它document.createElement('option')来创建选项。如果您使用新的 Option 方法,您可能还必须在history.go(0)之后添加以强制浏览器刷新选择选项。

于 2012-06-14T21:58:05.603 回答