Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 29.08.2011, 18:52
Интересующийся
Отправить личное сообщение для frost18 Посмотреть профиль Найти все сообщения от frost18
 
Регистрация: 14.07.2011
Сообщений: 26

Как узнать максимальную высоту блока?
Есть много товаров с их наименованиями к примеру
<div class="good_title">Диски</div>
<div class="good_title">Сельскохозяйств нные запчасти</div>
<div class="good_title">Книги</div>

Как мне на JS или JQuery узнать максимальную высоту блока?
К примеру $(".good_title").height(); возвращает высоту первого блока
Ответить с цитированием
  #2 (permalink)  
Старый 29.08.2011, 19:58
Аватар для B@rmaley.e><e
⊞ Развернуть
Отправить личное сообщение для B@rmaley.e><e Посмотреть профиль Найти все сообщения от B@rmaley.e><e
 
Регистрация: 11.01.2010
Сообщений: 1,810

Math.max.apply(Math, $(".good_title").map(function(){
  return $(this).height()
}).get());
Ответить с цитированием
  #3 (permalink)  
Старый 29.08.2011, 22:07
Интересующийся
Отправить личное сообщение для frost18 Посмотреть профиль Найти все сообщения от frost18
 
Регистрация: 14.07.2011
Сообщений: 26

Спасибо добрый человек, сейчас попробую
Ответить с цитированием
  #4 (permalink)  
Старый 29.08.2011, 22:59
Интересующийся
Отправить личное сообщение для frost18 Посмотреть профиль Найти все сообщения от frost18
 
Регистрация: 14.07.2011
Сообщений: 26

А как мне узнать максимальный размер только в первых четырех блоках, потом в следущих четырех и т.д ?
Ответить с цитированием
  #5 (permalink)  
Старый 30.08.2011, 01:41
Интересующийся
Отправить личное сообщение для frost18 Посмотреть профиль Найти все сообщения от frost18
 
Регистрация: 14.07.2011
Сообщений: 26

Подскажите пожалуйста как выбрать конкретные блоки.
К примеру '.good_title:lt('+count+')' Выберет все до указанного. А как мне задать чтоб не с первого а с определенного до определенного?
Ответить с цитированием
  #6 (permalink)  
Старый 30.08.2011, 11:15
sinistral
Посмотреть профиль Найти все сообщения от melky
 
Регистрация: 28.03.2011
Сообщений: 5,418

по идее, такая конструкция должна работать

должен выделить со второго по пятый, не включая => дивы с номерами 3 и 4 внутри
Пример: не работает. хотя должно
<script src="http://yandex.st/jquery/1.6.2/jquery.min.js"></script>
<div>0</div>
<div>1</div>
<div>2</div>
<div>3</div>
<div>4</div>
<div>5</div>
<div>6</div>
<script>
*!*
$('div*!*:gt(2):lt(5)*/!*').css("border","1px red solid");
*!*
</script>

ещё в jquery можно сделать так ( slice, как обычный массив )
<script src="http://yandex.st/jquery/1.6.2/jquery.min.js"></script>
<div>0</div>
<div>1</div>
<div>2</div>
<div>3</div>
<div>4</div>
<div>5</div>
<script>
*!*
$('div')*!*.slice(3,5)*/!*.css("border","1px red solid");
*/!*
</script>


var res = [],    // массив результатов
      a;           // кэш коллекции

// кэшируем коллекцию и обходим её
(a=$("div")).each(function(i) { 

    // остаток от деления на 4 может быть нулевым и у нуля.
    if (i % 4 === 0)
        // обрезаем коллекцию от текущей до "текущей+4", 
        // высчитываем массив высот 
        // и помещаем в результат максимальную
        res.push(Math.max.apply(Math, a.slice( i, i+4 ).map(function(){
            return $(this).height();
        }).get()));

});

// всё
alert(res);


создадим 10 div ( в итоге это 2 высоты (по 4 эл ) плюс 2 элемента по отдельности .. то бишь всего должно быть три высоты в результате)
Пример: живой пример
<script src="http://yandex.st/jquery/1.6.2/jquery.min.js"></script>
<body>

</body>
<script>
// создаем одинаковые div
for (var i = 0; i < 10; i++) $("<div>" + i + "</div>").appendTo(document.body);

var res = [], a;

(a=$("div")).each(function(i) {

    if (i % 4 === 0)
        res.push(Math.max.apply(Math, a.slice( i, i+4 ).map(function(){
            return $(this).height();
        }).get()));
    
});


alert(res);
</script>


единственный минус этого способа - это два цикла. но первый лёгкий (проверяем i ), а второй обходит 4 элемента.

Последний раз редактировалось melky, 30.08.2011 в 12:46.
Ответить с цитированием
  #7 (permalink)  
Старый 30.08.2011, 11:43
Аватар для B@rmaley.e><e
⊞ Развернуть
Отправить личное сообщение для B@rmaley.e><e Посмотреть профиль Найти все сообщения от B@rmaley.e><e
 
Регистрация: 11.01.2010
Сообщений: 1,810

Цитата:
Пример: не работает. хотя должно
<script src="http://yandex.st/jquery/1.6.2/jquery.min.js"></script>
<div>0</div>
<div>1</div>
<div>2</div>
<div>3</div>
<div>4</div>
<div>5</div>
<script>
$('div:gt(2):lt(5)').css("border","1px red solid");
</script>
Ответить с цитированием
  #8 (permalink)  
Старый 30.08.2011, 12:48
sinistral
Посмотреть профиль Найти все сообщения от melky
 
Регистрация: 28.03.2011
Сообщений: 5,418

B@rmaley.e><e

к
<div>0</div>
<div>1</div>
<div>2</div>
<div>3</div>
<div>4</div>
<div>5</div>
<div>6</div>

применяем
$('div:gt(2):lt(5)').css("border","1px red solid");


получаем

<div>0</div>
<div>1</div>
<div>2</div>
<div style="border : 1px red solid">3</div>
<div style="border : 1px red solid">4</div>
<div style="border : 1px red solid">5</div>
<div style="border : 1px red solid">6</div>
Ответить с цитированием
  #9 (permalink)  
Старый 30.08.2011, 12:50
Аватар для B@rmaley.e><e
⊞ Развернуть
Отправить личное сообщение для B@rmaley.e><e Посмотреть профиль Найти все сообщения от B@rmaley.e><e
 
Регистрация: 11.01.2010
Сообщений: 1,810

Так оно и работает.
Ответить с цитированием
  #10 (permalink)  
Старый 21.10.2013, 19:38
Новичок на форуме
Отправить личное сообщение для guestalex Посмотреть профиль Найти все сообщения от guestalex
 
Регистрация: 06.10.2012
Сообщений: 6

ребята, нужно узнать максимальную высоту картинки в TD тэге, таких вообще 3 TD с картинками, просто сами картинки разные по высоте, мне нужно узнать высоту максимально высокой картинки, загнать это число в переменную и на все TD сделать эту высоту...

пробовал equalHeight - в хроме не помогает, постоянно высоту TD показывает 0px... решил пойти другим путём, помогите...

везде работает нормально equalHeight, кроме хрома.. задолбался уже просто...
при проверке через alert вывести высоту картинки, в хроме всегда показывает 0... бред какой-то...

а, ребята, всё, решил проблему...

чтобы в хроме нормально отображалось в equalHeight.js использовал $(window).load, вместо $(document).ready - не русские совет дали...

Последний раз редактировалось guestalex, 21.10.2013 в 19:53.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как узнать, что содержит onClick? PHPNoob Events/DOM/Window 3 17.07.2015 13:20
Можно ли средствами JS узнать высоту скрытого элемента? ацкий Общие вопросы Javascript 7 24.08.2011 19:07
Как узнать размер загружаемого файла? shkarbatov Серверные языки и технологии 5 14.08.2011 17:12
Как узнать текущее значение TreePanel? astral_sight ExtJS 3 23.07.2010 13:03
Как узнать о том, что флэш уже загрузился. Snipe Общие вопросы Javascript 4 29.01.2009 11:21