Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 02.06.2017, 08:34
Новичок на форуме
Отправить личное сообщение для cartgen Посмотреть профиль Найти все сообщения от cartgen
 
Регистрация: 02.06.2017
Сообщений: 2

Как определить максимальное значение style width из нескольких повторяющихся div
Здравствуйте.
Ребята, помогите чайнику. В Javascript я нуль.
Нужно определить максимальное значение style width (ширины) из нескольких повторяющихся div с одинаковым классом "pdf".

Наваял такое:

var count = document.getElementsByClassName('pdf').length;
var widths =[];
for (i = 0; i < count; ++i) {
  widths[i] = document.getElementsByClassName('pdf')[i].style.width.replace('px', ''); 
}
var maxWidth = Math.max.apply(null, widths);



Вроде работает. Проверьте, пожалуйста, правильно это или нет. Может как-то лучше можно?

Последний раз редактировалось ksa, 02.06.2017 в 08:44. Причина: Оформление кода
Ответить с цитированием
  #2 (permalink)  
Старый 02.06.2017, 08:46
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,123

Сообщение от cartgen
Может как-то лучше можно?
Как минимум так

var o = document.getElementsByClassName('pdf');
var max=0;
for (var i = 0; i < o.length; ++i) {
  var val = o[i].style.width.replace('px', ''); 
  if (val>max) max=val;
}
alert(max);
Ответить с цитированием
  #3 (permalink)  
Старый 02.06.2017, 08:52
Кандидат Javascript-наук
Отправить личное сообщение для Diphenyl Oxalate Посмотреть профиль Найти все сообщения от Diphenyl Oxalate
 
Регистрация: 21.01.2017
Сообщений: 139

хм

<div class="pdf" style="width: 100px;"></div>
<div class="pdf" style="width: 200px;"></div>
<div class="pdf" style="width: 300px;"></div>
<div class="pdf" style="width: 400px;"></div>
<div class="pdf" style="width: 5px;"></div>

<script>
var o = document.getElementsByClassName('pdf');
var max=0;
for (var i = 0; i < o.length; ++i) {
  var val = o[i].style.width.replace('px', ''); 
  if (val>max) max=val;
}
alert(max);

</script>
Ответить с цитированием
  #4 (permalink)  
Старый 02.06.2017, 08:52
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,068


scrollWidth
Ответить с цитированием
  #5 (permalink)  
Старый 02.06.2017, 08:55
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,123

Сообщение от Diphenyl Oxalate
хм
Каюсь, не проверял...

<div class="pdf" style="width: 100px;"></div>
<div class="pdf" style="width: 200px;"></div>
<div class="pdf" style="width: 300px;"></div>
<div class="pdf" style="width: 400px;"></div>
<div class="pdf" style="width: 5px;"></div>
<script>
var o = document.getElementsByClassName('pdf');
var max=0;
for (var i = 0; i < o.length; ++i) {
	var val = o[i].style.width.replace('px', ''); 
	if (-val<-max) max=val;
};
alert(max);
Ответить с цитированием
  #6 (permalink)  
Старый 02.06.2017, 08:57
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,068

ksa,

<div class="pdf" style="width: 100px;"></div>
<div class="pdf" style="width: 200px;"></div>
<div class="pdf" style="width: 300px;"></div>
<div class="pdf" style="width: 400px;"></div>
<div class="pdf" style="width: 5px;"></div>

<script>
var o = document.getElementsByClassName('pdf');
var max=0;
for (var i = 0; i < o.length; ++i) {
  var val = +o[i].style.width.replace('px', ''); 
  if (val>max) max=val;
}
alert(max);

</script>
Ответить с цитированием
  #7 (permalink)  
Старый 02.06.2017, 09:00
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,123

рони, обновленный вариант см.выше.
Ответить с цитированием
  #8 (permalink)  
Старый 02.06.2017, 09:01
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,068


<a href="/kv.php"></a>
<div class="pdf" style="width: 100px;"></div>
<div class="pdf" style="width: 200px;"></div>
<div class="pdf" style="width: 300px;"></div>
<div class="pdf" style="width: 400px;"></div>
<div class="pdf" style="width: 5px;"></div>

<script>
var o = document.getElementsByClassName('pdf');
var max=[].reduce.call(o,function(a,b) {
   return Math.max(a, b.scrollWidth)
},0);
alert(max);

</script>
Ответить с цитированием
  #9 (permalink)  
Старый 02.06.2017, 09:07
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,068

Сообщение от ksa
вариант см.выше
Сообщение от ksa
if (-val<-max) max=val;
с этим вариантом в max строка, может один плюс лучше, чем два минуса, мало ли складывать потом с чем-то этот max.
Ответить с цитированием
  #10 (permalink)  
Старый 02.06.2017, 09:24
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,123

рони, просто хотел развеселить.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Выводить значение раньше переменных Гробовщик Общие вопросы Javascript 11 10.09.2013 08:42
как определить значение css transition (jquery) BelkinV Общие вопросы Javascript 3 03.01.2013 18:15
Как определить картинки в div. jeysmook jQuery 2 14.06.2012 11:28
Установить максимальное значение скролбара, как? ацкий Общие вопросы Javascript 5 25.08.2011 00:44
Как получить значение атрибута width в теге img, находящемся в скрытом диве? kolyan1983 Internet Explorer 4 21.03.2011 15:14