jQuery - 页面上最宽的项目

时间:2009-08-05 13:43:25

标签: jquery

如何使用jQuery在网页上找到最宽的项目(在css中设置宽度或作为属性设置)?

2 个答案:

答案 0 :(得分:8)

不会快,但应该做的伎俩

var widest = null;
$("*").each(function() {
  if (widest == null)
    widest = $(this);
  else
  if ($(this).width() > widest.width())
    widest = $(this);
});

这应该可以解决问题

这个版本可能会稍微快一点(但绝对不是那么客观):

var widest = null;
// remember the width of the "widest" element - probably faster than calling .width()
var widestWidth = 0;
$("*").each(function() {
  if (widest == null)
  {
    widest = $(this);
    widestWidth = $(this).width();
  }
  else
  if ($(this).width() > widestWidth) {
    widest = $(this);
    widestWidth = $(this).width();
  }
});

我还建议你限制你经历的节点类型(即使用div而不是*)

答案 1 :(得分:2)

很棒的回答Niko!

我稍微建立在它上面,以便它只显示页面上可见的元素,因为有时它会返回宽度设置较大但可能有display:none set的例子;

var widest = null;

$("*").each(function() {
    if (widest === null && $(this).is(':visible') ) {
        widest = $(this);
    } else if ( $(this).is(':visible') && $(this).width() > widest.width() ) {
        widest = $(this);
    }
});