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

为什么这不起作用(在空选择列表上操作

 $(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");

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

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

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

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

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