试图缩短我的img源数组

时间:2013-09-08 07:24:21

标签: javascript arrays

我将拥有非常长的一系列图像,我知道应该有更好的方法来编写它。

目前情况如此:

var imgnames=new Array("img[src*='edit']", "img[src*='delete']", "img[src*='copy']");
var imgs = document.querySelectorAll(imgnames);

但我希望通过这样的方式缩短数组中项目的名称:

var imgnames=new Array("edit", "delete", "copy");
var imgs = document.querySelectorAll("img[src*='???imgnames???']");

但是不能让它工作,我想我的引言都在错误的地方。谢谢!

1 个答案:

答案 0 :(得分:5)

你可以“手动”做到:

function buildPaths() {
   var res = [];
   for (var i=0; i<arguments.length; i++) {
       res.push( "img[src*='" + arguments[i] + "']");
   }
   return res;
}

var imgnames=buildPaths("edit", "delete", "copy");
var imgs = document.querySelectorAll(imgnames);

或者更简洁:

var paths = ["edit", "delete", "copy"];
var fullPaths = paths.map(function(x) { return "img[src*='" + x + "']"; } );
var imgs = document.querySelectorAll(fullPaths);