我想计算一个选定元素在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;
};
不知何故,这也不能完成这项工作,在上述任何一种情况下我都不知道确切地说$(这个)指向的地方。
所以回到这个问题:
我如何编写一个计算所选元素数量的函数?请尽可能详细说明你的解释,我是新手:D
谢谢 。
既然你在插件中说过,你的代码必须与@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));
您需要将$('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" />