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

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

我想要实现的是找出链接中3个中最大的

。 所以我想要的是,在循环运行之后,将var width设置为任何宽度可能的最大可能数量。

正在进行的代码链接中

这里:

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

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

使用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) }); }); 

我相信你想看看下划线库。 具体来说,是max方法

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

.each()循环更改为:

 var thisWidth = $(this).outerWidth(true); if (thisWidth > width) { width = thisWidth; } 

这是我的想法

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

 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以获得每个循环完成时的最大数量。

我刚刚写了一个函数。 我认为这可能有助于其他人。 ( 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; }