为什么IE不将<option>添加到我的dropDown?</option>

时间:2011-09-30 08:08:02

标签: jquery internet-explorer jquery-ui internet-explorer-8 internet-explorer-9

我正在使用IE运行此sample script

var $select = $('#select');
var $button = $('#button');

$button.click(function() {
    var $option = $('<option />');
    $option.text('hello');
    $option.appendTo($select);
});

var $tabs = $('#tabs');
$tabs.tabs();

这很简单:点击按钮时,我的下拉列表中应添加option。这很有效 - IE中的基本功能。

我的问题:
只需“打开”dropDown,然后再“关闭”它。现在切换到选项卡“按钮”并点击按钮。现在切换到标签“选择” - 新的option应该可用 这适用于除IE之外的所有浏览器...(有时IE会在几个制表符切换后混乱)

如何修复脚本?

1 个答案:

答案 0 :(得分:3)

添加选项框的选项比添加option DOM元素(live example)更简单,更易于浏览器友好的方式:

$button.click(function() {
    var option = new Option('hello');
    $select[0].options.add(option);
});

也许这对你来说更可靠。 (请注意,它是add不是 pushoptions元素上的select对象实际上不是数组。)

而不是options.add你也可以这样做:

$button.click(function() {
    var options = $select[0].options,
        option  = new Option('hello');
    options[options.length] = option;
});

......它也以类似数组的方式添加到最后。但add是可靠的跨浏览器。

相关问题