Jquery 为什么IE不添加<;选项>;我的下拉列表?

Jquery 为什么IE不添加<;选项>;我的下拉列表?,jquery,internet-explorer,jquery-ui,internet-explorer-8,internet-explorer-9,Jquery,Internet Explorer,Jquery Ui,Internet Explorer 8,Internet Explorer 9,我正在用IE运行这个: var$select=$('#select'); var$button=$(“#button”); $按钮。单击(函数(){ var$期权=$(''); $option.text('hello'); $option.appendTo($select); }); var$tabs=$(“#tabs”); $tabs.tabs(); 这很简单:单击按钮时,应该在我的下拉列表中添加一个选项。这很好用——IE中的基本fct 我的问题: 只需“打开”下拉列表,然后再次“关闭”。现

我正在用IE运行这个:

var$select=$('#select');
var$button=$(“#button”);
$按钮。单击(函数(){
var$期权=$('');
$option.text('hello');
$option.appendTo($select);
});
var$tabs=$(“#tabs”);
$tabs.tabs();
这很简单:单击按钮时,应该在我的下拉列表中添加一个
选项。这很好用——IE中的基本fct

我的问题:
只需“打开”下拉列表,然后再次“关闭”。现在切换到选项卡“按钮”并点击按钮。现在切换到选项卡“选择”-新的
选项应可用。
这在除IE之外的所有浏览器上都非常有效。。。(有时IE在几个选项卡切换后出错)


如何修复脚本?

有一种比添加
option
DOM元素()更简单、跨浏览器友好的方法来向选择框添加选项:

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

代替
选项。添加
您还可以执行以下操作:

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

…它还以类似数组的方式添加到末尾。但是,
add
是一种可靠的跨浏览器方法。

与添加
option
DOM元素()相比,向选择框添加选项有一种更简单、更友好的跨浏览器方法:

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

代替
选项。添加
您还可以执行以下操作:

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

…它还以类似数组的方式添加到末尾。但是,
add
是可靠的跨浏览器操作。

你是说它根本不起作用,还是在几个选项卡切换之后就不起作用了?有时根本不起作用,有时在一些切换之后。。。请尝试我的完整工作示例,看看IE的行为:)您可以自己在JSFIDLE上尝试:)。。。但我会在一段时间内尝试,因为我的评论被删除了。事实上,它没有帮助。你是说它根本不起作用,还是在几个选项卡切换之后就不起作用了?有时根本不起作用,有时在一些切换之后。。。请尝试我的完整工作示例,看看IE的行为:)您可以自己在JSFIDLE上尝试:)。。。但我会在一段时间内尝试,因为我的评论被删除了。事实上,它没有帮助。只是给你一个更准确的方向:在同一个div上工作时,问题不会发生。它以某种方式连接到隐藏div中的
select
,并且以前是“打开”和“关闭”的。如果我只保留“选择未触及”和“切换”选项卡,并添加一个
选项
,它就可以完美地工作!是的,直到现在:)。。。谢谢!(我的cmt背后的真正想法不是一个错误的答案,而是对我的问题的一个更准确的解决方案-这是一个jquery问题吗?我做错了什么?是ie吗?…除了你神奇的整体解决方案之外,在这里找到真正的问题会很好)只是为了给你一个更准确的方向:在处理同一个div时,问题不会发生。它以某种方式连接到隐藏div中的
select
,并且以前是“打开”和“关闭”的。如果我只保留“选择未触及”和“切换”选项卡,并添加一个
选项
,它就可以完美地工作!是的,直到现在:)。。。谢谢!(我的cmt背后的真正想法不是一个错误的答案,而是对我的问题的一个更准确的解决方案-这是一个jquery问题吗?我做错了什么?是ie吗?…除了你神奇的整体解决方案之外,在这里找到真正的问题会很好)
$button.click(function() {
    var options = $select[0].options,
        option  = new Option('hello');
    options[options.length] = option;
});