我正在使用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会在几个制表符切换后混乱)
如何修复脚本?
答案 0 :(得分:3)
添加选项框的选项比添加option
DOM元素(live example)更简单,更易于浏览器友好的方式:
$button.click(function() {
var option = new Option('hello');
$select[0].options.add(option);
});
也许这对你来说更可靠。 (请注意,它是add
,不是 push
。options
元素上的select
对象实际上不是数组。)
而不是options.add
你也可以这样做:
$button.click(function() {
var options = $select[0].options,
option = new Option('hello');
options[options.length] = option;
});
......它也以类似数组的方式添加到最后。但add
是可靠的跨浏览器。