jQuery可以';在插件中找不到()吗?

jQuery可以';在插件中找不到()吗?,jquery,jquery-plugins,jquery-selectors,Jquery,Jquery Plugins,Jquery Selectors,我对jQuery非常陌生,我正在开发一个插件(供我自己使用),用于使用ajax调用返回的内容设置DOM元素html()。例如: <span id="a" class="scalar">?</span> <span id="b" class="scalar">?</span> <span id="c" class="scalar">?</span><!-- this will not be updated -->

我对jQuery非常陌生,我正在开发一个插件(供我自己使用),用于使用ajax调用返回的内容设置DOM元素
html()
。例如:

<span id="a" class="scalar">?</span>
<span id="b" class="scalar">?</span>
<span id="c" class="scalar">?</span><!-- this will not be updated -->
这是插件调用和定义问题是:为什么
find()
不能正确选择要更新的元素

<script type="text/javascript">
   $(document).ready(function() {
      $('.scalar').scalar({ url : '../REST/stats.php' });
   });
</script>

(function($) {

    $.fn.scalar = function(options) {

        var opt = $.extend({
            url : 'REST/stats.php',
            type : 'POST',
            context: this,
            dataTypeString : 'json'
        }, options);

        $.ajax($.extend(opt, {
            success : function(obj) {
                for(k in obj) {
                    if(!obj.hasOwnProperty(k)) continue;
                    console.log(this.find('#' + k));
                }
            }
        }));

        return this.each();
    };

})(jQuery);

$(文档).ready(函数(){
$('.scalar').scalar({url:'../REST/stats.php'});
});
(函数($){
$.fn.scalar=函数(选项){
var opt=$.extend({
url:'REST/stats.php',
键入:“POST”,
背景:这,,
dataTypeString:'json'
},选项);
$.ajax($.extend(opt{
成功:功能(obj){
用于(obj中的k){
如果(!obj.hasOwnProperty(k))继续;
console.log(this.find('#'+k));
}
}
}));
返回此.each();
};
})(jQuery);
因为查找子元素,而您要查找的元素不是子元素(它们都是彼此的兄弟)。改用:

这将是一个包装一组DOM元素的jQuery对象。除非这些元素中的一个或多个包含一个具有您正在使用
find
查找的
id
的子元素,否则它将不起作用。您需要查看元素本身,这就是
filter
所做的

<script type="text/javascript">
   $(document).ready(function() {
      $('.scalar').scalar({ url : '../REST/stats.php' });
   });
</script>

(function($) {

    $.fn.scalar = function(options) {

        var opt = $.extend({
            url : 'REST/stats.php',
            type : 'POST',
            context: this,
            dataTypeString : 'json'
        }, options);

        $.ajax($.extend(opt, {
            success : function(obj) {
                for(k in obj) {
                    if(!obj.hasOwnProperty(k)) continue;
                    console.log(this.find('#' + k));
                }
            }
        }));

        return this.each();
    };

})(jQuery);
console.log(this.filter('#' + k));