Javascript 函数中的var动态
对不起,我的英语很差。这就是我的问题。我想显示图像,这些图像是在js文件中定义的。本例中有3个图像,但它们可以超过 在js文件中,我有以下代码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: "
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)
}
}