试图缩短我的img源数组

use*_*612 1 javascript arrays

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

目前它看起来像这样:

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

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

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

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

Gam*_*ist 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);
Run Code Online (Sandbox Code Playgroud)

或者更简洁:

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