やあ皆さん、まず最初に、私は jQuery 初心者だとだけ言わせてください。HTML select 要素を自動入力する単純なプラグインを作成したいのですが、最初の要素では正常に動作しますが、もう一度呼び出して 2 番目の要素を入力すると、何も追加されません。#product と #new-category が選択要素である ajax タブでの私の呼び出しは次のとおりです。
$(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);
奇妙なことに、2 番目の関数呼び出しを変更すると正常
$("#new-category").popSelect("categories");
に
$("[id^='new-category']").popSelect("categories");
動作します。セレクターに何か問題がありますか?
助けてくれてありがとう!