Javascript 如何使用jquery清除数组索引?
我使用数组存储数据,然后使用ajax提交。这是第一次提交,效果很好。但当随后提交时,它将提交null值以及传递给服务器的数据 我正在使用下面的方法清除数组,但我发现前面的数据刚刚设置为null。例如,我第一次传递值1,successful。对于第二次提交,我清除数组并存储新值,例如,我将值2推送到项目[],当提交时,它将提交null和2Javascript 如何使用jquery清除数组索引?,javascript,jquery,ajax,Javascript,Jquery,Ajax,我使用数组存储数据,然后使用ajax提交。这是第一次提交,效果很好。但当随后提交时,它将提交null值以及传递给服务器的数据 我正在使用下面的方法清除数组,但我发现前面的数据刚刚设置为null。例如,我第一次传递值1,successful。对于第二次提交,我清除数组并存储新值,例如,我将值2推送到项目[],当提交时,它将提交null和2 var items=[]; items.push(data); 我怎样才能修好它?我需要在每次提交值时重置数组 代码: 如果要重置所有阵列直到其为空,可以执
var items=[];
items.push(data);
我怎样才能修好它?我需要在每次提交值时重置数组
代码:
如果要重置所有阵列直到其为空,可以执行以下操作:
var items=[];
$("#selection").click(function(e) {
$(":checkbox").each(function() {
if(this.checked === false) {
this.checked = true;
items.push(this.id);
}
});
});
$('#grid').submit(function(e){
e.preventDefault();
var formdata = {
data:items
};
$.ajax({
type: "POST",
url: "/add",
data: formdata ,
dataType:'html',
success: function(data) {
alert("added");
}
});
});
这样您就可以重置阵列
更新
使用时:
var array = [1,2,3,4,5,6];
array.length = 0;
希望对你有帮助
感谢您的注释@nnnnnn如果您想重置所有阵列直到其为空,您可以执行以下操作:
var items=[];
$("#selection").click(function(e) {
$(":checkbox").each(function() {
if(this.checked === false) {
this.checked = true;
items.push(this.id);
}
});
});
$('#grid').submit(function(e){
e.preventDefault();
var formdata = {
data:items
};
$.ajax({
type: "POST",
url: "/add",
data: formdata ,
dataType:'html',
success: function(data) {
alert("added");
}
});
});
这样您就可以重置阵列
更新
使用时:
var array = [1,2,3,4,5,6];
array.length = 0;
希望对你有帮助
感谢您的注释@nnnnnn您只需在ajax之后将数组设置为空数组即可
array.splice(0) // this will delete items from index that you passed, only if you passed the first parameters
或者最好在每次点击时清空它
success: function(data) {
alert("added");
items=[];
}
只需在ajax之后将数组设置为空数组
array.splice(0) // this will delete items from index that you passed, only if you passed the first parameters
或者最好在每次点击时清空它
success: function(data) {
alert("added");
items=[];
}
添加所有relevatn代码将有助于查看guradio提到的相关代码,但什么阻止了您重新分配变量?
items.length=0
,或者只是重新分配一个新的空数组items=[]
。(无论如何,这不是jQuery问题,这是一个简单的JavaScript问题。)我认为问题是由于分页造成的;(调用items.push()的现有代码)
从单击处理程序内部看似乎有点奇怪-如果用户在提交之前多次单击该元素,是否意味着相同的值会多次添加到数组中?添加所有relevatn代码将有助于查看guradio提到的相关代码,但是什么阻止您重新分配变量?items.length=0
或只是重新分配一个新的空数组items=[]
(无论如何,这不是jQuery问题,这是一个普通的JavaScript问题)。我认为问题是由于分页造成的;(调用items.push()的现有代码)
从单击处理程序内部看似乎有点奇怪-这是否意味着如果用户在提交之前多次单击该元素,相同的值会被多次添加到数组中?“这将克隆整个数组”-.splice()
方法不会克隆,它会修改,并且.splice(0)
确实清空了一个数组。@nnnnnn OMG你的右边我被用于克隆整个数组的array.slice(0)方法弄糊涂了,很抱歉,我将更新答案。谢谢。“这将克隆整个数组”-.splice()
方法不克隆,它会修改,并且.splice(0)
没有清空数组。@nnnnnn OMG您的权利我对array.slice(0)方法感到困惑,该方法将克隆整个数组,很抱歉我将更新答案谢谢。