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>