加载选择列表时,在JQuery中使用json数据填充selectlist(不是文档)

我在表单上有一个按钮,动态生成一个选择列表,该列表应该填充json数据,我已经正确地提取了所有json数据我唯一的问题是挂钩selectlist的onload事件以填充数据,我知道我可以使用$(’#itemID’)。fillSelectlist()来填充它,但问题是我的选择列表ID是动态生成的,我不知道如何连接选择的方式($(“# item“+ itemNum +”list“))

我目前的代码如下:

$.fn.fillSelect = function(data) { return this.clearSelect().each(function() { if (this.tagName == 'SELECT') { var dropdownList = this; $.each(data, function(index, optionData) { var option = new Option(optionData.Text, optionData.Value); if ($.browser.msie) { dropdownList.add(option); } else { dropdownList.add(option, null); } }); } }); 

}

我试图将其连接到选择列表的onload,如下所示:

 $.fn.FillDDL = function() { $.getJSON("/Controller/GetFileCategories", null, function(data) { this.fillSelect(data); });  

任何指针?

编辑:我的选择列表作为html存储在jquery脚本中,并带有onload =“fillDDL”值,但如果我将脚本设置为$(’#file1Category’),则它们在出现时不会触发。我的document.ready()脚本中的fillDDL会触发但是错误,所以我想我正在扩展我的问题以包括为什么onload不工作以及是否还有其他方法我应该使用?

EDIT2:我的字段被添加到表单中,如下所示:

 $('#moreFiles').click(function() { $("
" + "
" + "" + "" + "" + "" + "" + "

") .hide() .appendTo($('#fileDiv')) .fadeIn('fast'); FileCount++; });

 $(function(){ $.getJSON("/Controller/GetFileCategories", null, function(data) { $("select").each(function(){ var dropdownList = this; $(dropdownList).clearSelect(); $.each(data, function(index, optionData) { var option = new Option(optionData.Text, optionData.Value); if ($.browser.msie) { dropdownList.add(option); } else { dropdownList.add(option, null); } }); }); }); }); 

编辑:哎呀。 重写并修复。

此外,还有一个插件用于此类事情

编辑:您必须使用仅选择所需列表的选择器替换$(“select”)。

如果您的数据如下所示:

 var data = [{"Text":"file1","Value":1},{"Text":"file2","Value":2}]; 

然后:

 var str = ""; $.each(data, function(index, optionData) { str += ""; }); 

然后在你的点击处理程序中可以放

 ""; 

可能必须编写窗口[str]而不是str,以便它是全局的

看起来你的大写可能会关闭。

 $.fn.FillDDL 

VS

 onload="fillDDL" 

你也可以这样做: