10

为什么这不起作用(在一个空的选择列表上操作<select id="requestTypes"></select>

$(function() {

        $.getJSON("/RequestX/GetRequestTypes/", showRequestTypes);

    }
    );


    function showRequestTypes(data, textStatus) {

        $.each(data,
            function() {

                var option = new Option(this.RequestTypeName, this.RequestTypeID);
                // Use Jquery to get select list element
                var dropdownList = $("#requestTypes");

                if ($.browser.msie) {
                    dropdownList.add(option);
                }

                else {

                    dropdownList.add(option, null);

                }
            }
            );

        }

但这确实:

  • 代替:

    var dropdownList = $("#requestTypes");

  • 使用普通的旧javascript:

    var dropdownList = document.getElementById("requestTypes");

4

3 回答 3

15

$("#requestTypes")返回一个包含所有选定元素的 jQuery 对象。您试图调用add()单个元素的方法,但您调用的add()是 jQuery 对象的方法,它的作用非常不同。

为了访问 DOM 元素本身,您需要将 jQuery 对象视为一个数组,并使用$("#requestTypes")[0].

于 2008-09-18T17:33:12.890 回答
9

默认情况下,jQuery 选择器返回 jQuery 对象。添加这个以获取返回的 DOM 元素:

 var dropdownList = $("#requestTypes")[0];
于 2008-09-18T17:28:07.397 回答
4

对于这样的东西,我使用texotela 的选择框插件及其简单的 ajaxAddOption 函数。

于 2008-09-18T21:48:28.657 回答