Javascript 将数组对象显示到html表

Javascript 将数组对象显示到html表,javascript,jquery,html,arrays,Javascript,Jquery,Html,Arrays,我现在正在着手一个小项目 我有这个输入,它会将项目推送到一个数组中。我的问题是,每次我用按钮按下对象时,它都会在我的表中显示一些重复的对象 var tasks=[]; var计数=0; $('#添加')。单击(函数(){ var desc=$.trim($('#列表输入').val()); var id=Date.now(); 项目={}; 项目[“id”]=id; 项目[“说明”]=说明; 任务。推送(项目); 如果(!desc){ 项目[“id”]=“”; 警报(“输入说明”); } va

我现在正在着手一个小项目

我有这个输入,它会将项目推送到一个数组中。我的问题是,每次我用按钮按下对象时,它都会在我的表中显示一些重复的对象

var tasks=[];
var计数=0;
$('#添加')。单击(函数(){
var desc=$.trim($('#列表输入').val());
var id=Date.now();
项目={};
项目[“id”]=id;
项目[“说明”]=说明;
任务。推送(项目);
如果(!desc){
项目[“id”]=“”;
警报(“输入说明”);
}
var tbl=$(“”).attr(“id”,“mytable”);
$(“#mylist”).append(待定);
对于(变量i=0;i

添加到列表中
从列表中删除
你的名单
清楚的

更新了答案,您可以避免使用数组,并可以通过使用一些适当的选择器实现所需的结果

var计数=0;
var tbl=$(“”).attr(“id”,“mytable”);
$(“#mylist”).append(待定);
$('#添加')。单击(函数(){
var desc=$.trim($('#列表输入').val());
var id=Date.now();
如果(!desc){
警报(“输入说明”);
返回false;
}
var tr=“”;
变量td1=”“+id+”;
变量td2=“”+desc+”;
$(“#我的表格”)。追加(tr+td1+td2);
//清除输入字段
$('#列表输入').val('');
});
$(“#删除”)。单击(函数(){
var desc=$.trim($('#列表输入').val());
如果(!desc){
警报(“输入说明”);
返回false;
}
var td=$(“td”).filter(函数(){
返回$(this).text()==desc;
});
var row=td.parent();
row.remove();
$('#列表输入').val('');
});

添加到列表中
从列表中删除
你的名单
清楚的

如果你取出循环,只取你要推到的数组中的最后一个,它将解决你的问题

编辑:这样,如果您想在其他函数中使用任务,它不会将其清除

编辑2:将它添加到只有在找不到此类id时才会追加表的位置,我认为这会使它更干净

var tasks=[];
var计数=0;
$('#添加')。单击(函数(){
var desc=$.trim($('#列表输入').val());
var id=Date.now();
项目={};
项目[“id”]=id;
项目[“说明”]=说明;
任务。推送(项目);
如果(!desc){
项目[“id”]=“”;
警报(“输入说明”);
}
if(!$(“#mytable”).length){//检查mytable id是否存在
var tbl=$(“”).attr(“id”,“mytable”);
$(“#mylist”).append(待定);
}
var tr=“”;
var td1=“”+任务[tasks.length-1][“id”]+”;
var td2=“”+任务[tasks.length-1][“description”]+”;
$(“#我的表格”)。追加(tr+td1+td2);
//清除输入字段
$('#列表输入').val('');
});

添加到列表中
从列表中删除
你的名单
清楚的

每次添加时,都会重复初始化表格

请尝试以下方法:

var tasks=[];
var计数=0;
$(函数(){
var tbl=$(“”).attr(“id”,“mytable”);
$(“#mylist”).append(待定);

对于(var i=0;i因为您每次都在所有数据上循环并附加到存在的数据上…我应该将我的表附加移到循环之外。对吗?谢谢您应该在添加新表之前删除上次添加的表。我不想重置数组。我只是发现我将表id保留在循环内。谢谢这没有意义销毁阵列。事实上,如果你要这么做的话,拥有一个阵列是没有意义的。