jQuery - самый широкий элемент на странице - PullRequest
2 голосов
/ 05 августа 2009

Как найти самый широкий элемент (ширину, заданный в css или как атрибут) на веб-странице с помощью jQuery?

Ответы [ 2 ]

8 голосов
/ 05 августа 2009

не будет быстрым, но должно сработать

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 вместо *)

2 голосов
/ 05 декабря 2013

Отличный ответ Нико!

Я немного увеличил его, чтобы он отображал только элементы на странице, которые видны, потому что иногда он возвращает элементы с большой шириной, но может иметь отображение: ни один не установлен, например;

var widest = null;

$("*").each(function() {
    if (widest === null && $(this).is(':visible') ) {
        widest = $(this);
    } else if ( $(this).is(':visible') && $(this).width() > widest.width() ) {
        widest = $(this);
    }
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...