我想计算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
谢谢。
答案 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));