Javascript for循环中的动态变量名
我正在使用一个表单,该表单需要填充来自cookies的值。表单元素的id对应于cookie名称:Javascript for循环中的动态变量名,javascript,cookies,Javascript,Cookies,我正在使用一个表单,该表单需要填充来自cookies的值。表单元素的id对应于cookie名称: <label>ABC: </label> <input type="text" id="ABC" /> <br /> <label>DEF: </label> <input type="text" id="DEF" /> <br /> <label>GHI: </label>
<label>ABC: </label>
<input type="text" id="ABC" />
<br />
<label>DEF: </label>
<input type="text" id="DEF" />
<br />
<label>GHI: </label>
<input type="text" id="GHI" />
<br />
<label>JKL: </label>
<input type="text" id="JKL" />
<br />
但后来我考虑将其改写为数组和循环:
var cookienames = new Array();
cookienames[0] = "ABC";
cookienames[1] = "DEF";
cookienames[2] = "GHI";
cookienames[3] = "JKL";
for (var i=0; i<cookienames.length; i++) {
var cookienames[i]+"data" = getCookie(cookienames[i]);
var cookienames[i]+"field" = document.getElementById(cookienames[i]);
cookienames[i]+"field".value = cookienames[i]+"data";
}
var cookienames=new Array();
cookienames[0]=“ABC”;
cookienames[1]=“DEF”;
cookienames[2]=“GHI”;
cookienames[3]=“JKL”;
对于(var i=0;i您是否尝试了以下方法:
document.getElementById(cookienames[i]).value = getCookie(cookienames[i]);
你试过这个吗:
document.getElementById(cookienames[i]).value = getCookie(cookienames[i]);
不需要在循环中使用不同的变量。请简单地尝试
var cookienames = ["ABC", "DEF", "GHI", "JKL"],
field,
data,
cn;
for (var i = 0, cl = cookienames.length; i < cl; i++) {
cn = cookienames[i]; // get cookie name
data = getCookie(cn); // read cookie value
field = document.getElementById(cn); // retrieve field
field.value = data; // set field value
}
var cookienames=[“ABC”、“DEF”、“GHI”、“JKL”],
领域
数据,
cn;
对于(变量i=0,cl=cookienames.length;i
(作为旁注,最好先缓存数组的长度)无需在循环中使用不同的变量。请简单尝试
var cookienames = ["ABC", "DEF", "GHI", "JKL"],
field,
data,
cn;
for (var i = 0, cl = cookienames.length; i < cl; i++) {
cn = cookienames[i]; // get cookie name
data = getCookie(cn); // read cookie value
field = document.getElementById(cn); // retrieve field
field.value = data; // set field value
}
var cookienames=[“ABC”、“DEF”、“GHI”、“JKL”],
领域
数据,
cn;
对于(变量i=0,cl=cookienames.length;i
(作为旁注,最好先缓存数组的长度)您不能以这种方式使用var
关键字动态“创建”变量
但是,由于每个全局变量都是窗口的一个属性
,您可以这样做:
window[cookienames[i]+"data"] = getCookie(cookienames[i]);
您不能以这种方式使用var
关键字动态“创建”变量
但是,由于每个全局变量都是窗口的一个属性
,您可以这样做:
window[cookienames[i]+"data"] = getCookie(cookienames[i]);
不知道为什么要使用中间变量,这应该可以
var cookienames = new Array();
cookienames[0] = "ABC";
cookienames[1] = "DEF";
cookienames[2] = "GHI";
cookienames[3] = "JKL";
for (var i=0; i<cookienames.length; i++) {
var data = getCookie(cookienames[i]);
document.getElementById(cookienames[i]).value = data;
}
var cookienames=new Array();
cookienames[0]=“ABC”;
cookienames[1]=“DEF”;
cookienames[2]=“GHI”;
cookienames[3]=“JKL”;
对于(var i=0;i不知道为什么要使用中间变量,这应该可以
var cookienames = new Array();
cookienames[0] = "ABC";
cookienames[1] = "DEF";
cookienames[2] = "GHI";
cookienames[3] = "JKL";
for (var i=0; i<cookienames.length; i++) {
var data = getCookie(cookienames[i]);
document.getElementById(cookienames[i]).value = data;
}
var cookienames=new Array();
cookienames[0]=“ABC”;
cookienames[1]=“DEF”;
cookienames[2]=“GHI”;
cookienames[3]=“JKL”;
对于(var i=0;i您的意思是,为什么我要将它们命名为“ABCdata”和“ABCfield”?在这种情况下,您不需要变量,因为您可以在单个操作中完成所有操作您的意思是,为什么我要将它们命名为“ABCdata”和“ABCfield”在这种情况下,你不需要变量,因为你可以在一次操作中完成所有事情非常感谢,@CBroe,我学到了一些非常有价值的东西!非常感谢,@CBroe,我学到了一些非常有价值的东西!谢谢,@Fabrizio,这非常有价值。你能给我解释一下数组声明的结构吗关于您所使用的,我发现它非常有趣,但并不熟悉……当您创建一个数组时,您可以声明一个空结构以供稍后填充(正如您所做的),但您也可能很快列出方括号之间的所有值,并且值必须以逗号分隔(最后一个除外):谢谢,@Fabrizio,我得到了那个部分,但我感兴趣的是你在逗号后添加的东西:字段,数据,cn;
你能解释一下这个结构吗,也许能告诉我在哪里可以读到它吗?var a,b,c;
只是var a;var b;var c;
哦,明白了。非常感谢,@Fabrizio!谢谢,@Fabrizio,这是非常有价值的。请你再给我解释一下你使用的数组声明的结构,我觉得它很有趣,但并不熟悉……当你创建一个数组时,你可以声明一个空的结构以供以后填充(就像你做的那样)但您也可能很快列出方括号中的所有值,并且值必须用逗号分隔(最后一个除外):谢谢,@Fabrizio,我得到了那个部分,但我感兴趣的是你在逗号后添加的东西:字段,数据,cn;
你能解释一下这个结构吗,也许能告诉我在哪里可以读到它吗?var a,b,c;
只是var a;var b;var c;
哦,明白了。非常感谢,@Fabrizio!