Javascript 如何在单击按钮时从数组中删除对象?
我想做一个静态的原油操作。当用户在文本框中添加详细信息时,它将存储在对象数组中,然后该对象将打印到表中。现在我想通过删除按钮从数组中删除行。我尝试了Javascript 如何在单击按钮时从数组中删除对象?,javascript,jquery,arrays,object,Javascript,Jquery,Arrays,Object,我想做一个静态的原油操作。当用户在文本框中添加详细信息时,它将存储在对象数组中,然后该对象将打印到表中。现在我想通过删除按钮从数组中删除行。我尝试了.splice(),但它不起作用。数据正在从表中删除,但我想从数组中删除它。我在下面提供我的页面: 带引导的表 输入详细信息 输入ID: 输入名称: 输入城市: 输入电子邮件: 提交重置表 你好,世界,你好 用户ID 用户名 用户电子邮件 用户城市 用户删除 让数据=[]; 函数可重置(){ const confirmMessage=conf
.splice()
,但它不起作用。数据正在从表中删除,但我想从数组中删除它。我在下面提供我的页面:
带引导的表
输入详细信息
输入ID:
输入名称:
输入城市:
输入电子邮件:
提交重置表
你好,世界,你好
用户ID
用户名
用户电子邮件
用户城市
用户删除
让数据=[];
函数可重置(){
const confirmMessage=confirm(“是否确实要重置表数据?它将从表中删除所有数据。您无法撤消此操作。!”;
如果(确认消息){
window.location.reload();
警报(“表数据已成功清除”);
}否则{
警报(“取消!”;
}
}
函数printTable(){
const getId=document.getElementById(“id”).value;
const getName=document.getElementById(“name”).value;
const getCity=document.getElementById(“城市”).value;
const getEmail=document.getElementById(“email”).value;
如果(getId!='',getName!='',getCity!='',getEmail!=''){
常量对象={
id:getId,
名称:getName,
城市:getCity,
电子邮件:getEmail
}
数据推送(obj);
打印(数据);
$('#id').val(“”);
$('#name').val(“”);
$(“#城市”).val(“”);
$('#email').val(“”);
}否则{
警告(“所有必须遵守的规定”);
}
}
功能打印(数据){
让结果=“”;
for(设i=0;i
您需要一种方法来识别列表中HTML元素之外的项目。看起来您可以使用id列(尽管通常最好在属性中放置类似的内容)。然后您可以使用过滤器:
将id添加到deleteRow函数
deleteRow(此,${data[i].id})
//删除id为的项。
变量a=[
{id:1},
{id:2},
{id:3},
{id:4},
{id:5},
{id:6},
{id:7},
{id:8},
{id:9}
];
a、 过滤器(item=>item.id!=deleteId);
我想你忘了更新数据数组了。
将deleteRow函数更改为
function deleteRow(btn) {
var cnfrmMessage = confirm("Are you sure want to Delete selected data? You cannot undo this action.");
if(cnfrmMessage == true){
var row = btn.parentNode.parentNode;
row.parentNode.removeChild(row);
// update your data (remove item by row id)
data = data.filter((item)=>item.id!==$(row).children()[0].innerText);
}
else{
alert("Cancelled..!!");
}
}
您的数组实际上是一个“数据”。因此,您需要一个唯一的id来删除特定的行或对此执行某些操作。
另一种方法是,您可以比较要删除的行中的所有字段,但这不是一个好的解决方案。如果我这样做,我将被限制删除id为3的唯一行。。我想删除用户按delete按钮所在的行,如代码所示。@Muhammadhassan,如我所说,从HTML元素中获取id。但您也可以将id添加到deleteRow函数中。@Muhammadhassan这基本上就是我试图用文字解释的。。。这个网站不是真的用来复制粘贴工作代码或家庭作业的。这是为了解释解决方案是的。。您能告诉我如何使用.slice()执行此任务吗?您可以尝试事件委派来获取要删除的当前元素的索引,并在没有该索引的情况下逐片使用