【发布时间】:2010-10-12 01:44:29
【问题描述】:
大家好,首先让我说我是 jQuery 菜鸟!我想制作一个自动填充 html 选择元素的简单插件,它在第一个元素上运行良好,但是当我再次调用它来填充第二个元素时,它什么也不附加。这是我在 ajax 选项卡中的调用,其中 #product 和 #new-category 是选择元素:
$(function(){
$("#product").popSelect("products");
$("#new-category").popSelect("categories");
});
HTML:
><select id="product" name="product">
> < option value="">Select Product</option>
></select >
><select id="new-category" name="new-category">
> < option value="">Select Category< /option>
></select >
这是插件:
(function(jQuery){
jQuery.fn.popSelect = function(table) {
return jQuery(this).each(function(){
var obj = jQuery(this);
if(this.nodeName.toLowerCase() == 'select'){
jQuery.getJSON("../app/modules/ajax/json.php", { table:table },
function(data){
var options = '';
jQuery.each(data, function(i,item){
options += '<option value="' + item.id + '">' + item.title + '</option>';
});
obj.append(options);
});
};
});
};
})(jQuery);
奇怪的是,如果我更改第二个函数调用
$("#new-category").popSelect("categories"); 到
$("[id^='new-category']").popSelect("categories");
然后它工作正常,我的选择器有问题吗?
感谢您的帮助!
【问题讨论】:
-
我推荐使用 (function($){ //code })(jQuery); - 这样你每次都可以使用 $ 速记而不是 jQuery :)
-
谢谢!正如我所说,我对此很陌生,所以非常感谢任何提示!会尽快修改!
-
你有这个在互联网上的某个地方,所以我可以看看它吗?
标签: jquery select plugins populate