我有以下脚本:
var height = 0;
$('.scroller').each(function() {
$(this).children('div').each(function() {
if (height < $(this).height()) {
height = $(this).height();
}
});
$(this).css("height", height + "px");
});
它能做什么:
遍历每个
children div
div中的每个.scroller
height < $(this).height()
=如果当前循环的div
的高度大于0
,则将该div的高度设置为new value of the height variable
这种方式是在每个
.scroller
div中找到最高的div元素然后,将高度(最高元素的高度)设置为
.scroller
div问题:
如果第一个'.scroller'内部的任何元素都高于第二个
.scroller
中的任何元素,则还将高度(第一个.scroller
中的最高元素)也设置为第二个scroller
-例如:http://jsfiddle.net/MrTest/7jAAG/20/是第一个
.scroller
中的元素不高于第二个.scroller
中的元素吗?一切正常-示例:http://jsfiddle.net/MrTest/7jAAG/16/我认为问题在于设置
height var
-在通过第二个0
循环之前,如何将该值重置为.scroller
? 最佳答案
我可能会误会您,但您是否可以这样做:
$('.scroller').each(function() {
var height = 0;
$(this).children('div').each(function() {
if (height < $(this).height()) {
height = $(this).height();
}
});
$(this).css("height", height + "px");
});
然后,
height
变量将为所遍历的DOM中的每个.scroller
实例重置。关于jquery - jQuery-在.each循环内重置变量值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7446398/