在console.logging之前计算HTML文档中所选元素的总数

时间:2014-12-29 08:22:14

标签: javascript jquery

我想构建一个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。

2 个答案:

答案 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