您好,我是javascript的新手,我正在使用select元素基于字典数组创建表。我让select元素充当值的过滤器。我的问题是,当我更改select元素的值并创建表时,我希望它删除它附加的前一个表,这样就不会形成一长串的表。我的变更代码如下:
const filteredTable = document.getElementById("candidates_example");
const newFilteredTable = filteredTable.cloneNode(true);
removeRowsFromTable(newFilteredTable);
const filteredTbody = newFilteredTable.getElementsByTagName('tbody')[0];
const filterSelection = document.getElementById("filterSelect").value;
const selectFilter = filterCandidateBySkill(newCandidates, filterSelection)
addCandidatesToTable(filteredTbody,selectFilter);
document.body.appendChild(newFilteredTable);
我尝试使用Google搜索来查找问题,但是我对javascript术语了解得不够多,无法知道我需要提出的问题。感谢您提供的任何指导。
答案 0 :(得分:1)
您可以使用replaceChild用新表替换上一个表:
replacedNode = parentNode.replaceChild(newChild,oldChild);
在您的情况下,应该是:
document.body.replaceChild(newFilteredTable, filteredTable);
答案 1 :(得分:1)
而不是追加,将.html()用于jquery或document.getElementById('demo')。innerHTML = tableVaiable;
答案 2 :(得分:0)
您可以使用.replaceWith()jQuery函数的功能。 .replaceWith()