使用JavaScript删除节点
我试图在点击一个按钮时删除一行。它工作正常,除非我在一个表内。我的JSP在表中有50行的组合,之后我们嵌套这些表。现在,我的问题是如果我想删除上一个表中的最后一行,我应该怎么做?使用JavaScript删除节点
我附上UI和调试器HTML视图的屏幕截图。任何建议都会有所帮助。
[DROW]这里是我们有一个树结构的不同行。我们需要首先爬到每一行,然后向下移动到lastChild以删除最后一行。
这是唯一可能的,如果我的previousRow包含最后一行val。我无法理解它。
function removeAnotherResponse(arg0, data, response, request){
// Make sure the response has everything we need
if(arguments==null || arguments.length<4 || !request.content || request.content==null || !request.content.groupUniqueId || request.content.groupUniqueId==null){
return;
}
// Check for true response
if(!data || data==null || !data[0] || !data[0].removedSuccess || data[0].removedSuccess!=true){
return;
}
var groupUniqueId=request.content.groupUniqueId;
// Get the add another button row and add the new row before it.
var addAnotherRow=document.getElementById("ADD_"+groupUniqueId);
if(addAnotherRow==null) return;
var previousRow=document.getElementById("ADD_"+groupUniqueId).previousSibling;
addAnotherRow.parentNode.removeChild(previousRow);
showOrHideAddRemoveButtons(groupUniqueId, data[0].removeButton, data[0].addButton);
updateSectionCount(groupUniqueId, false);
getPortCount(groupUniqueId);
}
谢谢大家提示我改正html代码。
UI元素确实为我在其他方面造成了问题。现在,我不是创建一个新的,而是找到了处理这个问题的其他方法,而且我的HTML代码变得更简单了。 PFB脚本已经改变了。感谢所有的建议:)
if (document.getElementById("ID" + gID) != null) {
innerElement = document.getElementById("ID_TD_" + gID);
innerElement.innerHTML = innerElement.innerHTML + responseHTML;
} else {
innerElement = document.createElement("td");
innerElement.setAttribute("id", "ID_TD_" + gID);
newElement.appendChild(innerElement);
innerElement.innerHTML = responseHTML;
}
您发布的HTML片段似乎有一些问题(ID重复,使用<tr>
作为其他<tr>
父)。我仍然回答你的主要问题如何删除表格的行。您可以使用DOM table对象的deleteRow方法。 rows集合可用于访问现有行,deleteRow
和insertRow允许您修改表。
在这里,我想移动到那一行,就像我目前的做法一样。当我在表格中遍历时,可以使用上面的代码轻松完成此操作。但是当一个表中的所有50行都被删除,并且我想要移动到上面的行时,它又显示了一个表,我无法这样做。 – Bhaskar 2014-08-31 13:33:05
@Bhaskar:对不起,但我不能完全关注你。您发布的代码片段仅使用像'parentNode'和'removeChild'这样的DOM方法,它们对于每个HTML元素都是** common **。 DOM API有一些**特定的**方法,比如'deleteRow',它允许您在使用**特定的** DOM元素(如“
添加代码不是截图。 – Mritunjay 2014-08-31 13:02:10
@Mritunjay ..我添加了我用来删除表内行的代码。我无法移动到上面嵌套了表格的行,如调试屏幕截图所示。 – Bhaskar 2014-08-31 13:05:41
'id'属性值应该是每个元素唯一的。在这里你应该使用不具有相同值的'id'类。 – GillesC 2014-08-31 13:14:16