使用jQuery计算一组元素的最大宽度

时间:2012-01-13 16:13:31

标签: javascript jquery

我做了一个快速的Jsbin:http://jsbin.com/ujabew/edit#javascript,html,live

我想要实现的是找出链接中3中最大的<section>。所以我想要的是,在循环运行之后,将var width设置为任何宽度可能的最大可能数。

在链接

中发布的代码正在进行中

7 个答案:

答案 0 :(得分:32)

下面:

var maxWidth = Math.max.apply( null, $( elems ).map( function () {
    return $( this ).outerWidth( true );
}).get() );

现场演示: http://jsfiddle.net/rM4UG/

答案 1 :(得分:2)

使用Math.max()充实Marc B的评论:

$(document).ready(function(){
  var maxWidth = 0;
  $('.content ul li').each(function(){
    var itemWidth = $(this).outerWidth(true);
    maxWidth = Math.max(maxWidth, itemWidth)
  });
});

答案 2 :(得分:0)

我相信您想要查看underscore库。具体来说,最大方法

答案 3 :(得分:0)

$(document).ready(function(){
  var maxWidth = 0;
  $('section').each(function(){
    w = $(this).outerWidth(true);      
    if ( w > maxWidth)
            maxWidth = w;
  });
});

答案 4 :(得分:0)

.each()循环更改为:

var thisWidth = $(this).outerWidth(true);

if (thisWidth > width) {
    width = thisWidth;
}

答案 5 :(得分:0)

这是我的想法

  

(文档)$。就绪(函数(){

var elements = $('.content ul li');
var count = elements.length -1;
var width = [];         

elements.each(function(n){
  width.push($(this).outerWidth(true));
  if (count == n) {

       width = Math.max.apply(Math, width);

   }   
 });
     

});

我添加了元素数量的计数,然后运行Math.max以获得每个循环完成时的最大数字。

答案 6 :(得分:0)

我刚刚写了一个关于此的函数。我认为这可能对别人有所帮助。 (的的jQuery

$.fn.largerWidth = function () {    //function(p)  
                                    // where 'p' can be clientWidth or offsetWidth 
                                    // or anything else related to width or height
    var s = this,m;
    for (var i = 0; i < s.length; i++) {
        var w = s[i].offsetWidth;   // s[i][p]; 
        (!m || w > m) ? (m = w) : null
    }
    return m;
}