jQuery从JSON创建选择列表选项,没有像广告中那样发生?

Cod*_*rks 10 javascript jquery html-select drop-down-menu

为什么这不起作用(在空的选择列表上操作 <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);

                }
            }
            );

        }
Run Code Online (Sandbox Code Playgroud)

但这样做:

  • 更换:

    var dropdownList = $("#requestTypes");

  • 使用普通的旧javascript:

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

Jim*_*Jim 15

$("#requestTypes")返回包含所有选定元素的jQuery对象.您正在尝试调用add()单个元素的方法,而是调用add()jQuery对象的方法,该方法执行的操作非常不同.

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


Joh*_*han 9

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

 var dropdownList = $("#requestTypes")[0];
Run Code Online (Sandbox Code Playgroud)