我将拥有非常长的一系列图像,我知道应该有更好的方法来编写它。
目前情况如此:
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???']");
但是不能让它工作,我想我的引言都在错误的地方。谢谢!
答案 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);