Javascript 单击按钮时未移除接头
当您单击“删除”按钮时,我试图从数组中删除一个人的全部数据,但该按钮不起作用。请帮忙Javascript 单击按钮时未移除接头,javascript,jquery,Javascript,Jquery,当您单击“删除”按钮时,我试图从数组中删除一个人的全部数据,但该按钮不起作用。请帮忙 var data=[{name:'Peter',lastName:'Petterson',dob:'13/12/1988'}, {姓名:'Anna',姓氏:'Jones',出生日期:'06/02/1968'}, {姓名:'John',姓氏:'Milton',出生日期:'01/06/2000'}, {姓名:'James',姓氏:'White',出生日期:'30/11/1970'}, {姓名:'Luke',姓氏:
var data=[{name:'Peter',lastName:'Petterson',dob:'13/12/1988'},
{姓名:'Anna',姓氏:'Jones',出生日期:'06/02/1968'},
{姓名:'John',姓氏:'Milton',出生日期:'01/06/2000'},
{姓名:'James',姓氏:'White',出生日期:'30/11/1970'},
{姓名:'Luke',姓氏:'Brown',出生日期:'15/08/1999'}
];
var name=data.map(函数(x,i){
var myNames=document.getElementById('name');
myNames.innerHTML++=(i++“+x.name++”+x.lastName++“+”DEL++”
);;
});
功能乐趣(num){
数据拼接(数量,1);
}
问题:您只是从数组中删除对象,而不是从DOM中删除对象
建议的解决方案:您应该更新DOM,因此我建议将innerHTML
部分包装到另一个函数中,然后每次更新数据时调用它,这样您就可以在页面上看到remove反射:
function showData(){
myNames.innerHTML ='';
data.map(function(x,i){
myNames.innerHTML += (i +". "+ x.name + ' '+x.lastName +" "+ "<button onclick = fun("+i+")>DEL</button>"+'<br>');
});
}
函数showData(){
myNames.innerHTML='';
数据映射(函数(x,i){
myNames.innerHTML++=(i++“+x.name++”+x.lastName++“+”DEL++”
);
});
}
希望这有帮助
var myNames=document.getElementById('name');
var data=[{name:'Peter',lastName:'Petterson',dob:'13/12/1988'},
{姓名:'Anna',姓氏:'Jones',出生日期:'06/02/1968'},
{姓名:'John',姓氏:'Milton',出生日期:'01/06/2000'},
{姓名:'James',姓氏:'White',出生日期:'30/11/1970'},
{姓名:'Luke',姓氏:'Brown',出生日期:'15/08/1999'}
];
showData();
函数showData(){
myNames.innerHTML='';
数据映射(函数(x,i){
myNames.innerHTML++=(i++“+x.name++”+x.lastName++“+”DEL++”
);
});
}
功能乐趣(num){
数据拼接(数量,1);
showData();
}
您可以将条目包装在span
上,如:
myNames.innerHTML += "<span>"+(i +". "+ x.name + ' '+x.lastName +" <button onclick=fun(this,"+i+")>DEL</button><br></span>");
然后使用remove()
方法获取父级span
,然后使用remove()
方法将其从DOM中删除
注意:最好使用forEach
而不是map
var data=[{name:'Peter',lastName:'Petterson',dob:'13/12/1988'},
{姓名:'Anna',姓氏:'Jones',出生日期:'06/02/1968'},
{姓名:'John',姓氏:'Milton',出生日期:'01/06/2000'},
{姓名:'James',姓氏:'White',出生日期:'30/11/1970'},
{姓名:'Luke',姓氏:'Brown',出生日期:'15/08/1999'}
];
var myNames=document.getElementById('name');
data.forEach(函数(x,i){
myNames.innerHTML++=”+(i+“+x.name+”+x.lastName+“DEL
”);
});
功能乐趣(_当前_按钮,num){
数据拼接(数量,1);
_当前按钮。最近('span')。删除();
}
为什么需要jquery
标签?可能的重复工作对我来说很好。。。是否每次调用fun
时都要更新name
div?使用forEach而不是map将从数组中删除数据。但是,HTML没有“自动”绑定,因此您仍然可以在HTML中看到条目…var names=data.map
,函数中没有返回任何内容。它应该更改为forEach
,如上面的注释所示。forEach
返回undefined
,因此您也可以删除var name=
。
<button onclick=fun(this,"+i+")>DEL</button>