Я очень новичок в 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);