我有一个数组(下面)
var img_name = new Array("images/test.jpg", "images/test.jpg");
var imgTotal = img_name.length;
var rnd_no = Math.floor(imgTotal*Math.random());
var ojimg = img_name[rnd_no];
我需要做的是传递另一条信息并将其附加到body标签上。所以。如果加载了test1.jpg,我需要将“light”传递给body标签,如果选择了另一个图像,我需要传递“dark”。这样做可以让CMS中的用户根据图像选择明暗主题。图像将随机输出。
答案 0 :(得分:4)
您可以在数组中存储对象:
// I'm using an Array literal instead of a Array constructor here, because it's shorter
var img_name = [ {image:"images/test.jpg", style:"light"}, {image:"images/test.jpg", style:"dark"} ];
var imgTotal = img_name.length;
var rnd_no = Math.floor(imgTotal*Math.random());
var ojimg = img_name[rnd_no].image;
var ojstyle = img_name[rnd_no].style;
答案 1 :(得分:0)
在你的数组中,你可以使用一个分隔符来增加一些字符串。
var img_name = new Array("images/test.jpg:light", "images/test.jpg:dark");
对于您的示例,我使用:
作为分隔符。在使用方法中,您可以根据分隔符:
拆分数据并相应地使用这两个项目。
答案 2 :(得分:0)
嵌套数组怎么样:
var img_name = [["images/test1.jpg", "light"], ["images/test2.jpg", "dark"]]];
var imgTotal = img_name.length;
var rnd_no = Math.floor(imgTotal*Math.random());
var ojimg = img_name[rnd_no][0];
var cssclass = img_name[rnd_no][1];
答案 3 :(得分:0)
您可以使用图像srcs字符串映射到主题名称。然后,您可以使用选定的图像src直接访问主题名称。
var themeMap = {};
themeMap["testImg1.jpg"] = myDarkTheme; //myDarkTheme can be a full object or just a string
然后你可以做
getTheme(img_name[rnd_no]);
function getTheme(imgSrcString)
{
return themeMap[imgSrcString];
}