1

我会有很长的图像数组,我知道应该有更好的方法来编写它。

目前它看起来像这样:

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???']");

但无法让它发挥作用,我想我的报价都在错误的地方。谢谢!

4

1 回答 1

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);
于 2013-09-08T07:32:46.900 回答