Javascript 无法在“节点”上执行“removeChild”:要删除的节点不是此节点的子节点
我有一个Javascript代码,无法删除表中的行 变量车=[ {id:1,产品:'Logitech鼠标',单价:45,数量:2,总计:90}, {id:2,产品:'Microsoft键盘',单价:50,数量:1,总计:50} ]; 函数makeTableobject{ 调试器 //支票类型 如果typeof object!==“object”返回false; //启动我们的HTML var html=产品\ 价格单位合计; //循环对象的成员 object.forEachfunction项{ console.logitem; html+=`${item.product}${item.unitprice}\ +${item.quantity}-\ ${item.total}x`; }; //完成表格: html+=; //还桌 返回html; } document.getElementById'shoppingCart'.innerHTML=makeTablecart; var del=document.getElementsByClassName'del'; Array.prototype.forEach.calldel,函数元素{ 元素。addEventListener“单击”函数{ console.logelement; element.parentNode.parentNode.removeChildelement.parentNode.parentNode; }; }; 与 您已键入element.parentNode.parentNode两次。就像:Javascript 无法在“节点”上执行“removeChild”:要删除的节点不是此节点的子节点,javascript,Javascript,我有一个Javascript代码,无法删除表中的行 变量车=[ {id:1,产品:'Logitech鼠标',单价:45,数量:2,总计:90}, {id:2,产品:'Microsoft键盘',单价:50,数量:1,总计:50} ]; 函数makeTableobject{ 调试器 //支票类型 如果typeof object!==“object”返回false; //启动我们的HTML var html=产品\ 价格单位合计; //循环对象的成员 object.forEachfunction项{
const parent = element.parentNode.parentNode;
parent.removeChild(parent);
显然,这是行不通的。再上一层:
element.parentNode.parentNode.parentNode.removeChild(element.parentNode.parentNode);
但是,显式选择表行可能更具可读性:
const tr = element.closest('tr');
tr.parentElement.removeChild(tr);
变量车=[
{id:1,产品:'Logitech鼠标',单价:45,数量:2,总计:90},
{id:2,产品:'Microsoft键盘',单价:50,数量:1,总计:50}
];
函数makeTableobject{
调试器
//支票类型
如果typeof object!==“object”返回false;
//启动我们的HTML
var html=产品\
价格单位合计;
//循环对象的成员
object.forEachfunction项{
html+=`${item.product}${item.unitprice}\
+${item.quantity}-\
${item.total}x`;
};
//完成表格:
html+=;
//还桌
返回html;
}
document.getElementById'shoppingCart'.innerHTML=makeTablecart;
var del=document.getElementsByClassName'del';
Array.prototype.forEach.calldel,函数元素{
元素。addEventListener“单击”函数{
常数tr=元素。最近的'tr';
tr.parentElement.removeChildtr;
};
};
凉的我喜欢有一个衬里。去掉
const tr = element.closest('tr');
tr.parentElement.removeChild(tr);