Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/451.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript for循环中的动态变量名_Javascript_Cookies - Fatal编程技术网

Javascript for循环中的动态变量名

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>

我正在使用一个表单,该表单需要填充来自cookies的值。表单元素的id对应于cookie名称:

<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!