我正在尝试使用Length来计算具有相同类名的一系列div中的图像数量,但我不能让jQuery单独查看每个DIV。
console.log($('.channel_titles_art').each( function(){
console.log($('.channel_titles_art img').length);
})
);
例如,我想输出:div one:4 images,div two:2 images,div three:12 images ...
但是它使用channel_titles_art类计算所有div的子图像的总数,并重复多次的数字(对于三个div“18个图像”重复三次)
有没有办法分别迭代每个div?
答案 0 :(得分:6)
你必须使用this
:
$('.channel_titles_art').each( function(){
console.log($('img', this).length);
})
显示您想要的内容:
$('.channel_titles_art').each( function(){
var amt_of_images = $('img', this).length;
console.log(this, 'has '+amt_of_images+' images');
})
答案 1 :(得分:2)
是。将$('.channel_titles_art img')
转换为$('img', this)
或$(this).find('img')
。
当原始匹配器匹配所有.channel_titles_art
内的所有图像时,这些将查找当前元素与.channel_titles_art
匹配的上下文中的所有图像。
使用.size()
代替.length
进行查找(来自Neal的复制粘贴)以显示备选方案的示例。
$('.channel_titles_art').each( function(){
console.log($(this).find('img').size());
})
和
$('.channel_titles_art').each( function(){
var amt_of_images = $(this).find('img').size();
console.log(this, 'has '+amt_of_images+' images');
})
fiddle(再次滥用尼尔的好作品)。
答案 2 :(得分:2)
烨。你要求每个元素都有一个channel_titles_art
类,然后询问each
块中所有中的所有图像。你需要指定。您可以使用this
作为对您正在使用的当前项目的引用,然后使用parent
函数的$
字段指定从中开始工作。
console.log($('.channel_titles_art').each( function(){
console.log($('img', this).length);
})
);