我有这样的标记:
<div class="imagegroup">
<img>
<img>
<img>
</div>
<div class="imagegroup">
<img>
<img>
<img>
</div>
<div class="imagegroup">
<img>
<img>
<img>
</div>
我想分别获得每组中最高图像的高度。我在each
函数中有一个jquery each
函数:
$('.imagegroup').each(function(index) {
var tallestHeight = 0;
var slideshowNumber = index;
var slides = $(this).children();
$(slides).each(function(index) {
thisSlideHeight = $(this).height();
console.log("In slideshow #" + slideshowNumber + ", slide #" + index + " has height " + thisSlideHeight);
if (thisSlideHeight > tallestHeight) {
var tallestHeight = thisSlideHeight;
}
return tallestHeight;
});
console.log("For slideshow " + slideshowNumber + " the tallest slide is " + tallestHeight);
});
但我很困惑的是如何将每个函数“一级”内部的结果传递到“外部”每个函数而不仅仅设置一个全局变量。我写这篇文章时tallestHeight
保持为零。我意识到这是 super 初学者:)所有帮助非常感谢。
答案 0 :(得分:2)
您不需要return tallestHeight
,删除它就可以了。
并在第二个内部将var tallestHeight = thisSlideHeight;
更改为tallestHeight = thisSlideHeight;
,您应该使用外部变量,而不是声明新变量。
或者您可以简化代码,如下所示:
$('.imagegroup').each(function(index) {
var max = Math.max.apply(null, $(this).find('img').map(function() {
return $(this).height();
}));
console.log("For slideshow " + index + " the tallest slide is " + max);
});
的 And here is the working demo 强> 的