计算插件中所选元素的总数。

时间:2014-12-29 05:58:07

标签: jquery jquery-plugins

我想计算html文档中所选元素的总次数,我必须在Jquery插件中执行此操作:

所以说我选择html doc中的所有图片。像这样:

$(document).ready(function(){
    $('img').randomize();
});

现在在Jquery插件中,我如何计算html文档中img出现的总次数?另请注意,我希望始终选择一个img,它可能是任何其他html元素或类或id。

所以我在插件中编写了以下代码:

   var count = 0;
    $(this).each(function(){
            count++;
    });

现在这可以完成这项工作但不知何故对我来说看起来很脏,我更喜欢编写一个能够进行计数的函数,所以我也试过了:

    function number_of_image(){
          $(this).each(function(){
            count++;
        }); 
        return count;
    };

我以某种方式无法让$(this)指向当前所选元素(在本例中为'img')。

我尝试了另外一件事,那就是我尝试将$(this)存储在变量中作为全局声明:

var current = $(this);

然后使用这样的电流:

    function number_of_image(){
          current.each(function(){
            count++;
        }); 
        return count;
    };

不知怎的,这也不能完成这项任务,在上述任何一种情况下我都不知道确切地说$(this)指向的位置。

回到这个问题:

我如何编写一个计算所选元素数量的函数?请尽可能详细说明你的解释,我是新手:D

谢谢。

2 个答案:

答案 0 :(得分:0)

您需要将$('img')传递给number_of_image()才能使代码生效。

工作代码段:

var count = 0;

function number_of_image(image){
  $(image).each(function(){
    count++;
  }); 
  alert(count);
};

$(document).ready(function(){
  number_of_image($('img'));
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<!-- 3 sample images -->
<img src="http://pbltech.org/wiki/images/e/e6/Sample.jpg" />
<img src="http://www.officeshop.co.nz/shop/494-664-large/account-overdue-dixon-stamp.jpg" />
<img src="https://d2gg9evh47fn9z.cloudfront.net/thumb_COLOURBOX10334787.jpg" />

答案 1 :(得分:0)

既然您在插件中说过,您的代码必须与@rahul建议的稍微不同,但是您必须将$(this)作为参数传递给number_of_image()函数。

代码如下所示:

        function number_of_image(current){
              $(current).each(function(){
                count++;
            }); 
            return count;
        };

现在您可以按如下方式调用该函数或者调用它。然后检查结果:

console.log(number_of_image($(this)));  

甚至将其存储在一个变量中,如果您在插件中使用它,我想这就是您尝试做的事情:

var storage = number_of_image($(this));