我想构建一个Jquery插件,帮助我计算HTML文档中所选元素的总次数:所以我编写了以下Jquery插件:
(function($){
$.fn.test = function(options){
var new_src,
src_storage = [];
return this.each(function(){
get_prop($(this));
log_it();
});
function log_it(){
console.log(src_storage.length);
}
function get_prop(current){
var temp = current.attr('src');
src_storage.push(temp);
}
}
}(jQuery));
现在假设我按以下方式调用插件:
$(document).ready(function(){
$('img').test();
});
现在我在控制台中得到的结果如下:(我的HTML文档中有9张图片)
1
2
3
4
5
6
7
8
9
现在我期待的结果是:
9
但我想我的插件执行顺序是这样的,在get_prop($(this))之后立即执行;函数调用log_it()函数被调用。
那么在记录之前,我如何计算文档中元素的总数?
编辑:以下方法有效,但不确定它有多好或干净:
this.each(function(){
get_prop($(this));
});
return this.each(function(){
log_it();
});
谢谢,你真的很感激你的帮助。
Tenali。
答案 0 :(得分:0)
从return this.each中删除log_it函数,否则它将为EACH元素执行log_it()函数。
this.each(function(){
get_prop($(this));
});
return log_it();
答案 1 :(得分:0)
如果你只想要长度,那么只能这样使用:
this.each(function(){
get_prop($(this));
});
return log_it();
您获得了所有号码,因为您在之前的代码中以循环each
调用了该号码。
这是链接怎么开始你可以开始开发插件,它的开始步骤。 http://learn.jquery.com/plugins/basic-plugin-creation/
<强> DEMO 强>