Как получить 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 ? |
Строки 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 ? "Портрет" : "Квадрат" |
Цитата:
|
Цитата:
У меня? Потому, что я его не вывожу, но добавьте коли надо: console.log(this.src, ar(this)) |
Цитата:
|
Цитата:
|
Цитата:
|
Цитата:
|
Цитата:
|
maxim1978,
здесь темы не закрывают и не отмечают пост, как решение, достаточно спасибо и сообщения, что такой-то пост помог, и возле ника в этом сообщении есть + для кармы. |
maxim1978, это плохая идея, поскольку иногда ответы на stackoverflow, отмеченные как решение, намного хуже, чем неотмеченный соседний ответ, который набрал даже больше отметок нравится!
Технологии со временем улучшаются, и то что было 10 лет как единственное возможное решение, сегодня может быть одним из решении, и может не самого лучшего качества! Насчёт вашего кода, в котором laimas предложил столько изменении... Вы всего лишь пропустили знак > на 7-ой строке в посте №1! Т.е вместо img.onload = e = console.log(url, ar(img));нужно img.onload = e => console.log(url, ar(img)); |
Цитата:
|
Цитата:
Цитата:
Цитата:
Цитата:
Цитата:
Цитата:
|
Бредятина.
|
Часовой пояс GMT +3, время: 00:07. |