javascript函数以获取html中的所有图像

adi*_*dit 8 javascript

我想有一个javascript函数基本上返回一个页面中所有img src的数组,我该怎么做?

Thi*_*ter 26

你可以很容易地得到一个包含所有的数组img通过元素document.getElementsByTagName():

var images = document.getElementsByTagName('img'); 
var srcList = [];
for(var i = 0; i < images.length; i++) {
    srcList.push(images[i].src);
}
Run Code Online (Sandbox Code Playgroud)

而不是document.getElementsByTagName('img')你也可以使用该document.images集合.


如果你正在使用jQuery,你也可以使用$('img')它给你一个包含所有img元素的jQuery对象.

var srcList = $('img').map(function() {
    return this.src;
}).get();
Run Code Online (Sandbox Code Playgroud)

  • @GaboEsquivel:这是枚举语法,当你想迭代索引时不应该使用它. (4认同)

Rob*_*obG 9

有一个document.images集合,所以:

function allSrc() {
  var src = [];
  var imgs = document.images;
  for (var i=0, iLen=imgs.length; i<iLen; i++) {
    src[i] = imgs[i].src;
  }
  return src;
}
Run Code Online (Sandbox Code Playgroud)

编辑ECMAScript ES5的更新

Array.prototype.map.call(document.images,function(img){return img.src});
Run Code Online (Sandbox Code Playgroud)

如果您有ES6箭头功能可用:

Array.prototype.map.call(document.images, img => img.src);
Run Code Online (Sandbox Code Playgroud)