Как получить все источники изображений на определенной странице с помощью Javascript

#javascript #image

#javascript #изображение

Вопрос:

Я использую простой скрипт для поиска изображения на странице и получения его источника.

 function img_find() {
    var img_find2 = document.getElementsByTagName("img")[0].src;
    return img_find;
}
  

Однако, когда я захожу написать эту функцию на своей странице, она находит только первое изображение, а затем останавливается. Каков наилучший способ заставить его напечатать все src-файлы изображений на текущей странице?
Спасибо!

Комментарии:

1. «он находит только первое изображение» — document.getElementsByTagName("img")[0] ммм?

2. Да, он получит только одно изображение src с определенной страницы, даже если на странице есть несколько изображений.

3. @Andrey пытался обратить ваше внимание на то, [0] что у вас там есть, чтобы получить 1-й элемент массива.

4. При вызове document.getElementsByTagName("img") вы получаете массив элементов, содержащий SRC всех элементов IMG, а затем вы получаете SRC первого элемента, используя это [0] .

5. ваш вопрос звучит так: я беру первое изображение на странице ( [0] ), однако оно находит только первое изображение.

Ответ №1:

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

 function img_find() {
    var imgs = document.getElementsByTagName("img");
    var imgSrcs = [];

    for (var i = 0; i < imgs.length; i  ) {
        imgSrcs.push(imgs[i].src);
    }

    return imgSrcs;
}
  

Комментарии:

1. Спасибо за этот балуск, но он не загрузил ни одного файла src img.

2. Это должно работать нормально, если в документе есть изображения. Возможно, вы неверно интерпретируете возвращаемое значение? Он возвращает массив. Или вы запускаете его слишком рано? Сделайте это на window.onload или поместите скрипт в конце текста, прямо перед </body> .

3. Понял! И последнее: я использую это для записи URL-адресов img на странице img_find = img_find(); document.write(‘test’ img_find); но это приводит к таким результатам domain.com/image.png ,http://www.domain.com/image.png есть ли способ их разбить? так что, возможно, между ними есть разрыв.

Ответ №2:

Это может вам помочь…

 img=document.getElementsByTagName("img");
for(i=0; i<img.length; i  ) {
    imgp = imgp   img[i].src   '<br/>'; 
}
document.write(imgp);
  

Комментарии:

1. Было бы полезно, если бы вы правильно отформатировали свой код.

Ответ №3:

Я искал решение по всему Интернету, возможно, это поможет, если кто-то другой будет искать то же самое.

 for(var i = 0; i< document.images.length; i  ){
document.images[i].style.border = "1px solid #E0FDA6";
}
  

То есть выполните поиск по всем изображениям, у которых есть тег style (граница в этом примере), и установите для всех границ значение E0FDA6 (полезно для сброса отдельных выделенных изображений), но я думаю, что это можно использовать для всего, что имеет тег style.

РГ, Anjanka

Ответ №4:

Для печати на текущей странице (заменить содержимое):

 document.write(`<pre>${JSON.stringify(Array.prototype.map.call(document.getElementsByTagName("img"), img => img.src), null, 2)}</pre>`);
  

Для сохранения в массив:

 const imgs = Array.prototype.map.call(document.getElementsByTagName("img"), img => img.src);
  

Просто напрямую в консольный каталог / журнал:

 console.dir(Array.prototype.map.call(document.getElementsByTagName("img"), img => img.src));
console.log(Array.prototype.map.call(document.getElementsByTagName("img"), img => img.src));
  

Ответ №5:

Сделайте это просто:

 console.log(document.body.getElementsByTagName('img'));
  

Комментарии:

1. это не отвечает на вопрос.