#javascript #dom
Вопрос:
Я должен зациклить document.getElementsByClassName, но сначала проверю.
Всего за один элемент я бы сделал это:
if (document.getElementsByClassName('lazyload img-responsive wp-post-image')[0].getAttribute('width') < 500){
document.getElementsByClassName('lazyload img-responsive wp-post-image')[0].setAttribute("srcset", " https://www......jpg ");}
Но я должен повторить это для большего количества элементов, и я никогда не знаю, сколько их там. Мне бы понадобился такой цикл, но с проверочным документом.getElementsByClassName («lazyload img-отзывчивый wp-пост-образ») [0] .Атрибут getAttribute («ширина»)
var elements = document.getElementsByClassName('lazyload img-responsive wp-post-image');
for (var i = 0, l = elements.length; i < l; i ) {
elements[i].setAttribute("srcset", " https://www......jpg ");
}
Как я мог решить эту проблему?
Спасибо
Ответ №1:
Не уверен, что ваши требования понятны. Это значит, что вам нужно проверить только element[0]
его ширину, а затем установить srcset
для всех остальных элементов? Или вам нужно протестировать соответствующие element[i]
и elements[i].setAttribute("srcset", " https://www......jpg ");
Если 1-й из них верен, то вы можете попробовать:
var elements = document.getElementsByClassName('lazyload img-responsive wp-post-image');
if(elements[0].getAttribute('width') < 500){
for (var i = 0, l = elements.length; i < l; i ) {
elements[i].setAttribute("srcset", " https://www......jpg ");
}
}
Если 2-е верно, то попробуйте:
var elements = document.getElementsByClassName('lazyload img-responsive wp-post-image');
for (var i = 0, l = elements.length; i < l; i ) {
if(elements[0].getAttribute('width') < 500){
elements[i].setAttribute("srcset", " https://www......jpg ");
}
}
Комментарии:
1. отличное спасибо. Я решил с помощью: var elements = document.getElementsByClassName(«ленивая загрузка img-отзывчивого wp-пост-изображения»); для (var i = 0, l = элементы. длина; i < l; i ) { if(элементы[i].getAttribute(‘ширина’) < 500){ элементы[i].setAttribute(«srcset», » …. jpg «); } }