我有一个这样的清单:
<div id="post-1" class="post"></div>
<div id="post-2" class="post"></div>
<div id="post-3" class="post"></div>
<div id="post-4" class="post"></div>
<div id="post-5" class="post"></div>
我想选择#post-1 AND#post-2,然后做点什么。然后选择#post-3 AND#post-4并做一些事情,然后抓住最后一个并做一些事情。这将是很多div的,所以我需要它成为某种循环。
伪代码就是这样:
var maxHeight = 0;
jQuery('.post-block:two-at-time').each(function(){
var height = jQuery(this).height();
if( height > maxHeight) {
maxHeight = height;
}
});
jQuery('.post-block:two-at-time').height(maxHeight);
关于如何做到这一点的任何想法?谢谢!
答案 0 :(得分:2)
var $post = $('.post'),
$even = $post.filter(':even'),
$odd = $post.filter(':odd')
for (var i = 0; i < $even.length; i++) {
var $a = $even.eq(i).add( $odd.eq(i) );
// ... ?
}
答案 1 :(得分:1)
这可能不是最干净的方式,但您可以使用普通的for
循环迭代最小/最大值,然后使用.slice
:
for (var start = 0, end = 2; start < $(".post").length; start += 2, end += 2) {
jQuery('.post').slice(start, end).each(function () {
答案 2 :(得分:0)
也许它会以这种方式工作..
for( var id = 2; id < $('.post').length; id=id+2){
var height = $('post-'+(id-1)).height() + $('post-'+id).height(); // I guess this way should work
if( height > maxHeight) {
maxHeight = height;
}
});
答案 3 :(得分:0)
这也会将.post
元素分组为2,查找具有正确maxHeight
的元素,然后将所有元素的高度设置为maxHeight
..
var count = maxHeight = 0;
$('.post').each(function ()
{
if (count % 2 == 0)
{
var even = $(this).height(); odd = $(this).next('div').height();
if(even > maxHeight || odd > maxHeight)
(even >= odd) ? maxHeight = even : maxHeight = odd;
}
count++;
}).css('height', maxHeight);