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