Javascript 函数中的var动态

Javascript 函数中的var动态,javascript,function,object,dynamic,appendchild,Javascript,Function,Object,Dynamic,Appendchild,对不起,我的英语很差。这就是我的问题。我想显示图像,这些图像是在js文件中定义的。本例中有3个图像,但它们可以超过 在js文件中,我有以下代码 var med1 = { title: "Title", description: "Description", icon: "file/1.png" }; var med2 = { title: "Other Title", description: "

对不起,我的英语很差。这就是我的问题。我想显示图像,这些图像是在js文件中定义的。本例中有3个图像,但它们可以超过

在js文件中,我有以下代码

var med1 = {
 title: "Title",
 description: "Description",
 icon: "file/1.png"
};

var med2 = {
 title: "Other Title",
 description: "Other description",
 icon: "file/imagesecond.png"
};

var med3 = {
 title: "The title",
 description: "The description",
 icon: "file/google.png"
};
在另一个页面中,我调用这个文件并执行

function affiche(a,b,c)
{
var x = document.createElement("IMG");
  x.setAttribute("src", a);
  x.setAttribute("width", "100");
  x.setAttribute("height", "100");
  x.setAttribute("alt", b);
  x.setAttribute("title", c);
  document.body.appendChild(x);
}

for (var i = 1; i <= 3; i++) {
console.log('med'+i);
affiche(med+i.icon,med+i.title,med+i.description)
}
功能粘贴(a、b、c)
{
var x=document.createElement(“IMG”);
x、 setAttribute(“src”,a);
x、 setAttribute(“宽度”、“100”);
x、 setAttribute(“高度”、“100”);
x、 setAttribute(“alt”,b);
x、 setAttribute(“标题”,c);
文件.正文.附件(x);
}
for(var i=1;i“med+i”不是有效的变量名。Javascript不会将其转换为med1、med2或med3

您必须分别调用方法affiche三次,或者将med1、med2和med3更改为一个名为med的数组。

谢谢您指导我使用此解决方案

function run() {
for (var i = 1; i <= 10; i++) {
var med = "med";
affiche(eval(med+i).icon,eval(med+i).title)
}
}
函数运行(){

对于(var i=1;i要使其实际可用和可维护,请使用数组。因此,请将初始结构更改为数组。现在,您可以添加和删除它,而无需更改任何代码

var-meds=[{
标题:“标题”,
description:“description”,
图标:“http://placekitten.com/200/300"
},
{
标题:“其他标题”,
说明:“其他说明”,
图标:“http://placekitten.com/150/200"
}, {
标题:“标题”,
描述:“描述”,
图标:“http://placekitten.com/100/300"
}
];
功能附件(a、b、c){
var x=document.createElement(“IMG”);
x、 setAttribute(“src”,a);
x、 setAttribute(“宽度”、“100”);
x、 setAttribute(“高度”、“100”);
x、 setAttribute(“alt”,b);
x、 setAttribute(“标题”,c);
文件.正文.附件(x);
}
医疗费(功能(医疗费){
词缀(医学图标、医学标题、医学描述);
})
//对于(var i=0;i谢谢,完成

函数运行(){

对于(var i=1;i不是问题,这是完全相同的问题…从链接…
窗口['med'+i]
,但最好使用数组或对象…“med+i”不是有效的变量名。Javascript不会将其转换为med1、med2或med3。”我知道,但有什么办法可以做到这一点吗?查一查eval:非常感谢RussEVAL错了……为什么?你有更好的办法吗?非常感谢你提供的信息!
function run() {
for (var i = 1; i <= 10; i++) {
affiche(window['med'+i].icon,window['med'+i].title)
}
}