首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >jQuery在atime处循环两个元素

jQuery在atime处循环两个元素
EN

Stack Overflow用户
提问于 2013-02-07 08:03:23
回答 4查看 518关注 0票数 2

我有一个这样的列表:

代码语言:javascript
复制
<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和#post-2,然后做一些事情。然后选择#post-3和#post-4并做一些事情,然后抓取最后一个并做一些事情。这将超过许多div,所以我需要它是某种类型的循环。

伪代码是这样的:

代码语言:javascript
复制
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);

你有什么好的建议吗?谢谢!

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2013-02-07 08:47:13

这也会将.post元素一分为二,查找具有正确maxHeight的元素,然后将所有元素的高度设置为maxHeight

代码语言:javascript
复制
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);
票数 0
EN

Stack Overflow用户

发布于 2013-02-07 08:19:42

代码语言:javascript
复制
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) );
        // ... ?
    }

http://jsfiddle.net/E3kbP/

票数 2
EN

Stack Overflow用户

发布于 2013-02-07 08:11:52

这可能不是最干净的方式,但是您可以使用一个普通的for循环来迭代您的最小值/最大值,然后使用.slice

代码语言:javascript
复制
for (var start = 0, end = 2; start < $(".post").length; start += 2, end += 2) {
    jQuery('.post').slice(start, end).each(function () {

http://jsfiddle.net/ExplosionPIlls/EJY5W/

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14741285

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档