【发布时间】:2012-02-12 04:11:31
【问题描述】:
我对 jQuery 很陌生,我正在开发一个插件(供我自己使用),用于设置 DOM 元素 html() 与 ajax 调用返回的内容。示例:
<span id="a" class="scalar">?</span>
<span id="b" class="scalar">?</span>
<span id="c" class="scalar">?</span><!-- this will not be updated -->
如果stats.php 将返回一个像这样的 JSON 对象:{ a : 3, b : 7 } 生成的 HTML 将是(每个对象属性将匹配调用插件的选择中的 id):
<span id="a" class="scalar">3</span>
<span id="b" class="scalar">7</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);
【问题讨论】:
标签: jquery jquery-plugins jquery-selectors