在 javascript 中声明空数组
Declare empty array in javascript
更新
我的代码有效。页面加载时
product= [[],[]];
然后 ajax 调用后执行的代码:
$('#contextreload ul').each(function(i, ul) {
product.push([]);
});
$('#contextreload ul').each(function(i, ul) {
allline=i;
$('#reloadajax'+i+' li').each(function(lk, li) {
var lilk = $(li).html(); product[i][lk]=lilk;
// your code goes here
});
// your code goes here
});
使用eval();在 ajax 对此的响应中,php 文件中有一些更改?
/结束更新
产品[0]=[1,2,3,4];
产品[1]=[a,b,x,z];
.
.
产品[10]=[额外,额外,额外,额外];
当我加载页面时,它被执行:product= [[],[],[],[],[],[],[],[],[],[]];
但是如果我声明这个,当我调用 ajax 我可以 push 只向这个数组添加数据(10 行)
如果我有 11 行(product[10][0]
和 product[10][1]
),则不会添加额外的数据。
ajax 通话后我需要额外的数据
: product= [[],[],[],[],[],[],[],[],[],[],**[11]**];
这个函数是因为我想在从 php 文件中加载 ajax 数据后将数据放入数组中。
$('#contextreload ul').each(function(i, ul) {
<strike> var product = $(ul).html(); </strike>
allline = i;
$('#reloadajax'+i+' li').each(function(lk, li) {
var lilk = $(li).html();
product[i][lk]=lilk;
alert(lilk+lk);
// your code goes here
});
// your code goes here
});
}
在您的 ajax 调用成功后使用函数 push()
product.push([]);
这会在 product
的最后一个索引处添加一个数组。这样,索引 10
就创建好了,你就有了额外的数据。
如果要添加动态行数,请使用此代码:
var number_of_new_row = 11; // 11 for example, you can use any number >= 0
for(; number_of_new_row--;)
product.push([]);
另一种方式
在您的 ajax return 中将数组的新长度 product
保存在一个全局变量中。
并在循环之前使用它来重置数组并使用新长度对其进行初始化。
var lengthArray = 10; // update the value in the callback of your ajax call
你的循环:
var product = [];
for(; lengthArray--;)
product.push([]);
$('#contextreload ul').each(function(i, ul) {
//<strike> var product = $(ul).html(); </strike>
allline = i;
$('#reloadajax'+i+' li').each(function(lk, li) {
var lilk = $(li).html();
product[i][lk]=lilk;
alert(lilk+lk);
// your code goes here
});
// your code goes here
});
注意:您的这行代码生成一个字符串,而不是一个数组。
var product = $(ul).html(); //returns string not an array
你需要的是
var product_arr = {}; // an object or
var product_arr = []; // an array
以下代码用于在javascript
中声明空数组
var product_arr = new Array(); //declaring empty array
console.log(product_arr);
var product = [];
是我个人一直在寻找的答案
更新
我的代码有效。页面加载时
product= [[],[]];
然后 ajax 调用后执行的代码:
$('#contextreload ul').each(function(i, ul) {
product.push([]);
});
$('#contextreload ul').each(function(i, ul) {
allline=i;
$('#reloadajax'+i+' li').each(function(lk, li) {
var lilk = $(li).html(); product[i][lk]=lilk;
// your code goes here
});
// your code goes here
});
使用eval();在 ajax 对此的响应中,php 文件中有一些更改? /结束更新
产品[0]=[1,2,3,4];
产品[1]=[a,b,x,z];
.
.
产品[10]=[额外,额外,额外,额外];
当我加载页面时,它被执行:product= [[],[],[],[],[],[],[],[],[],[]];
但是如果我声明这个,当我调用 ajax 我可以 push 只向这个数组添加数据(10 行)
如果我有 11 行(product[10][0]
和 product[10][1]
),则不会添加额外的数据。
ajax 通话后我需要额外的数据
: product= [[],[],[],[],[],[],[],[],[],[],**[11]**];
这个函数是因为我想在从 php 文件中加载 ajax 数据后将数据放入数组中。
$('#contextreload ul').each(function(i, ul) {
<strike> var product = $(ul).html(); </strike>
allline = i;
$('#reloadajax'+i+' li').each(function(lk, li) {
var lilk = $(li).html();
product[i][lk]=lilk;
alert(lilk+lk);
// your code goes here
});
// your code goes here
});
}
在您的 ajax 调用成功后使用函数 push()
product.push([]);
这会在 product
的最后一个索引处添加一个数组。这样,索引 10
就创建好了,你就有了额外的数据。
如果要添加动态行数,请使用此代码:
var number_of_new_row = 11; // 11 for example, you can use any number >= 0
for(; number_of_new_row--;)
product.push([]);
另一种方式
在您的 ajax return 中将数组的新长度 product
保存在一个全局变量中。
并在循环之前使用它来重置数组并使用新长度对其进行初始化。
var lengthArray = 10; // update the value in the callback of your ajax call
你的循环:
var product = [];
for(; lengthArray--;)
product.push([]);
$('#contextreload ul').each(function(i, ul) {
//<strike> var product = $(ul).html(); </strike>
allline = i;
$('#reloadajax'+i+' li').each(function(lk, li) {
var lilk = $(li).html();
product[i][lk]=lilk;
alert(lilk+lk);
// your code goes here
});
// your code goes here
});
注意:您的这行代码生成一个字符串,而不是一个数组。
var product = $(ul).html(); //returns string not an array
你需要的是
var product_arr = {}; // an object or
var product_arr = []; // an array
以下代码用于在javascript
中声明空数组var product_arr = new Array(); //declaring empty array
console.log(product_arr);
var product = [];
是我个人一直在寻找的答案