1

我正在使用 jQuery 以编程方式更改元素的option子元素。select

更改正在应用于 DOM,但在屏幕上不可见。

这是我在屏幕上看到的:

具有 4 个选项的组合框

这就是我在检查select元素时看到的:

带有 5 个选项子项的 HTML 选择

这是我用来更新select元素的代码:

    select.empty();
    $.each(this.entries, function() {
        var option = $$("<option/>");
        option.attr("value", this.value);
        option.text(this.label);
        select.append(option);
    });

这对我来说显然是一个错误。谁能告诉我这有什么问题或指出解决方法?

注意:由于我无法控制的原因,该页面处于怪癖模式。

4

2 回答 2

2

SelectElement 的文档在这里:https ://developer.mozilla.org/en-US/docs/DOM/HTMLSelectElement

您可以添加如下选项:

$("#sel")[0].options.add(new Option("test", "123")); //haven't tested all browsers

文档说您调用addselect 元素本身,并传入一个选项节点:

$("#sel")[0].add($("<option>").val("456").prop("text", "Test2")[0], null);

都在 IE8 中测试(和工作):http: //jsfiddle.net/82gCq/2/

注意——HTMLOptionsCollection的文档没有指定add方法,所以它不是标准化的,它的实现将留给浏览器(如果他们实现的话)。

好消息是它$("#sel")[0].add(new Option("test3", "789"));可以在 IE8 中运行,并且应该也可以在其他浏览器中运行。

于 2013-01-08T21:40:16.520 回答
0

尝试改变

var option = $$("<option/>");

var option = $("<option></option>");

我删除了双美元符号(我认为这是一个错字),并将option元素更改为不使用自闭合语法。我在某些元素(script, textarea, iframe)上使用自闭标签时遇到了问题,这可能是自闭标签可能出现问题的另一个例子。

于 2013-01-08T21:38:57.687 回答