2011-04-27 64 views
5

我正在使用一个简单的脚本在页面上查找图像并获取其源。如何使用Javascript获取特定页面上的所有图像源

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

但是,当我去写我的网页上的这个功能,它只发现第一个图像,然后停止。在当前页面上打印所有图像src的最佳方式是什么? 谢谢!

+0

“它只是发现的第一个图像” - 'document.getElementsByTagName(” img“)[0]'mmm? – Andrey 2011-04-27 18:59:23

+0

是的,即使页面上有多个图像,它也只会从特定页面获取一个图像src。 – Chris 2011-04-27 19:00:46

+0

@Andrey试图将注意力放在你获得数组第一项的'[0]'上。 – BalusC 2011-04-27 19:04:09

回答

18

你确实告诉代码这么做。不要这样做。只需告诉它遍历所有图像并将每个图像的src推送到一个数组中,然后返回带有所有srcs的数组。

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; 
} 
+0

感谢这个BalusC,但它没有加载任何img src。 – Chris 2011-04-27 19:07:17

+0

如果文档有图像,它应该可以正常工作。也许你误解了返回值?它返回一个数组。或者你运行得太早?在'window.onload'上执行,或者在''之前将脚本放在主体的末尾。 – BalusC 2011-04-27 19:16:47

+0

明白了!最后一件事:我用这个在页面上写img urls img_find = img_find(); document.write('test'+ img_find);但它出现像http://www.domain.com/image.png,http://www.domain.com/image.png这样的结果是否有打破它们?所以也许他们之间有一段时间的休息。 – Chris 2011-04-27 19:22:28

0

我搜索了整个网络的解决方案,也许这将有助于如果其他人搜索相同的。

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

含义,寻找有风格标签(境在这个例子中)中的所有图像,并设置所有边框E0FDA6(重置单高亮图像有用的),但我想它可以用于家居的风格标签。

RG,Anjanka

0

它可以帮助你...

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

如果您正确格式化代码,这将会有所帮助。 – chilemagic 2014-07-05 17:36:23

0

使简单:

console.log(document.body.getElementsByTagName('img')); 
相关问题