更新
我的代码有效。页面加载时
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文件中有一些变化? 的 / endupdate
产物[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
});
}
答案 0 :(得分:6)
在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返回中,将数组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
});
答案 1 :(得分:2)
注意:代码的这一行会生成一个字符串,而不是一个数组。
var product = $(ul).html(); //returns string not an array
你需要的是像
var product_arr = {}; // an object or
var product_arr = []; // an array
答案 2 :(得分:1)
以下代码用于在javascript中声明空数组
var product_arr = new Array(); //declaring empty array
console.log(product_arr);
答案 3 :(得分:0)
var product = [];
是我亲自寻找的答案