jQuery从JSON创建选择列表选项,而不是如广告所述吗?

时间:2020-03-06 14:22:28  来源:igfitidea点击:

这怎么行不通(对空的选择列表<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");

解决方案

默认情况下,jQuery选择器返回jQuery对象。添加此内容以返回DOM元素:

var dropdownList = $("#requestTypes")[0];

$("#requestTypes")返回包含所有选定元素的jQuery对象。我们正在尝试调用单个元素的add()方法,但是相反,我们正在调用jQuery对象的add()`方法,这有很大不同。

为了访问DOM元素本身,我们需要使用$("#requestTypes")[0]将jQuery对象视为数组并从中获取第一项。

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