Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 09.07.2019, 06:57
Аспирант
Отправить личное сообщение для maxim1978 Посмотреть профиль Найти все сообщения от maxim1978
 
Регистрация: 07.05.2019
Сообщений: 38

Как получить url всех элементов nodeList ?
Столкнулся с проблемой
Я хочу в зависимости от соотношения сторон изображения получить в кансоле уведомление и делаю это так :

let images = document.querySelectorAll("img");

images.forEach(function(url){
    
    let img = new Image();
    img.src = url;
    img.onload = e = console.log(url, ar(img));
    
 
})

function ar(img){
    if(img.width > img.height) {
        return"Альбом"
    }
    
    if(img.width < img.height) {
        return"Портрет"
    }
    
    if(img.width == img.height) {
        return"Квадрат"
    }
}


Разумеется что существует папка img в которой три изображения разных соотношений сторон
1) Вертикальная
2) Альбомная
3) Квадратная

В index.html просто написано

<img src="img/pic1.png" alt="">
 <img src="img/pic2.png" alt="">
 <img src="img/pic3.png" alt="">




Но в кансоль выводит вот это :



Почему такой вывод когда ожидается вывести то что в return и должно выводится url ?
Ответить с цитированием
  #2 (permalink)  
Старый 09.07.2019, 07:42
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Строки 3-10 кода, должно быть

images.forEach(function(url){
    let img = new Image();
    img.src = url.src;
    img.onload = function() {
        console.log(ar(this))      
    }
});


PS. А функцию возвращающую отношения сторон можно описать короче, тернарным оператором:

return img.width > img.height ? "Альбом" : img.width < img.height ? "Портрет" : "Квадрат"

Последний раз редактировалось laimas, 09.07.2019 в 07:46.
Ответить с цитированием
  #3 (permalink)  
Старый 09.07.2019, 08:07
Аспирант
Отправить личное сообщение для maxim1978 Посмотреть профиль Найти все сообщения от maxim1978
 
Регистрация: 07.05.2019
Сообщений: 38

Сообщение от laimas Посмотреть сообщение
Строки 3-10 кода, должно быть

images.forEach(function(url){
    let img = new Image();
    img.src = url.src;
    img.onload = function() {
        console.log(ar(this))      
    }
});


PS. А функцию возвращающую отношения сторон можно описать короче, тернарным оператором:

return img.width > img.height ? "Альбом" : img.width < img.height ? "Портрет" : "Квадрат"
спасибо - помогло
Ответить с цитированием
  #4 (permalink)  
Старый 09.07.2019, 08:07
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Сообщение от maxim1978
а почему не выводится url перед aspectRatio ?
У кого, в вашем коде? Потому как вы выводите объект.
У меня? Потому, что я его не вывожу, но добавьте коли надо:

console.log(this.src, ar(this))
Ответить с цитированием
  #5 (permalink)  
Старый 09.07.2019, 08:15
Аспирант
Отправить личное сообщение для maxim1978 Посмотреть профиль Найти все сообщения от maxim1978
 
Регистрация: 07.05.2019
Сообщений: 38

Сообщение от laimas Посмотреть сообщение
У кого, в вашем коде? Потому как вы выводите объект.
У меня? Потому, что я его не вывожу, но добавьте коли надо:

console.log(this.src, ar(this))
Всё сделано ..спасибо ..здесь можно отметить решением ?
Ответить с цитированием
  #6 (permalink)  
Старый 09.07.2019, 08:35
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Сообщение от maxim1978
здесь можно отметить решением ?
Не понял, что отметить?
Ответить с цитированием
  #7 (permalink)  
Старый 09.07.2019, 08:45
Аспирант
Отправить личное сообщение для maxim1978 Посмотреть профиль Найти все сообщения от maxim1978
 
Регистрация: 07.05.2019
Сообщений: 38

Сообщение от laimas Посмотреть сообщение
Не понял, что отметить?
к примеру как в stackoverflow или как на toster можно ответ отметить решением, здесь наверно такого нету
Ответить с цитированием
  #8 (permalink)  
Старый 09.07.2019, 08:49
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Сообщение от maxim1978
здесь наверно такого нету
Есть - http://javascript.ru/formatting
Ответить с цитированием
  #9 (permalink)  
Старый 09.07.2019, 09:00
Аспирант
Отправить личное сообщение для maxim1978 Посмотреть профиль Найти все сообщения от maxim1978
 
Регистрация: 07.05.2019
Сообщений: 38

Сообщение от laimas Посмотреть сообщение
Есть - http://javascript.ru/formatting
неее...не это ..не оформление вопроса а именно отметить Твой ответ как решение ладно проехали
Ответить с цитированием
  #10 (permalink)  
Старый 09.07.2019, 10:47
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,070

maxim1978,
здесь темы не закрывают и не отмечают пост, как решение, достаточно спасибо и сообщения, что такой-то пост помог, и возле ника в этом сообщении есть + для кармы.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
initComponent: Как получить данные родителя и как получить store для вызова load()? Пролетарий ExtJS 76 04.07.2015 09:22
Как получить новый порядок элементов в сортируемом списке Непонятливый jQuery 1 11.10.2012 12:43
Как получить значения вышестоящих элементов дерева TreeStore ? Allan Stark ExtJS 1 31.07.2012 16:48
Как получить список всех установленных плагинов VitAngel Internet Explorer 0 15.07.2009 09:13
Как снять фокус со всех элементов? Logo Общие вопросы Javascript 7 02.07.2009 23:53