我有以下脚本:
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 .scroller
div 问题:
.scroller
中的任何元素,则将高度(第一个.scroller
中的最高元素)设置为第二个scroller
- 例如:http://jsfiddle.net/MrTest/7jAAG/20/ 第一个.scroller
中的元素是否高于第二个.scroller
中的元素,一切正常 - 例如:http://jsfiddle.net/MrTest/7jAAG/16/
我认为问题在于设置height var
- 如何在第二次0
循环之前将此值重置为.scroller
?
答案 0 :(得分:5)
我可能会误解,但你不能这样做:
$('.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
的每个实例重置。
答案 1 :(得分:2)
我认为这可能就是你所追求的。 http://jsfiddle.net/7jAAG/30/
为height
的每次迭代设置.scroller
。
$('.scroller').each(function() {
var height = 0;
$(this).children('div').each(function() {
if (height < $(this).height()) {
height = $(this).height();
}
});
$(this).css("height", height + "px");
});
答案 2 :(得分:0)
下面是如何在每次迭代之间将高度设置为0。我不知道结果是否是你真正期望的结果。
var height = 0;
$('.scroller').each(function() {
$(this).children('div').each(function() {
if (height < $(this).height()) {
height = $(this).height();
}
});
$(this).css("height", height + "px");
height = 0;
});