【问题标题】:jQuery create select list options from JSON, not happening as advertised?jQuery 从 JSON 中创建选择列表选项,没有像宣传的那样发生?
【发布时间】:2010-09-10 19:34:05
【问题描述】:

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

【问题讨论】:

    标签: javascript jquery drop-down-menu html-select


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        【解决方案3】:

        对于这样的东西,我使用 texotela's select box plugin 及其简单的 ajaxAddOption 函数。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2013-03-05
          • 1970-01-01
          • 1970-01-01
          • 2018-08-24
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-05-27
          相关资源
          最近更新 更多