如何替换tr中的所有td元素?

时间:2017-05-11 21:27:22

标签: javascript html

我的父页面上有html表,其中包含一些数据:

Begin Date  End Date    City
03/28/2017              Toronto 
03/25/2017  03/26/2017  Miami   
03/22/2017  03/24/2017  Chicago
03/16/2017  03/21/2017  Dallas  
03/10/2017  03/15/2017  Austin 

使用后更新特定行的元素我想替换该行的内容。每行都有唯一的ID。我必须使用普通的JavaScript Vanilla来做到这一点。这是我到目前为止的例子:

fnObj.DATA是数字,我在成功完成ajax调用后得到了它。我使用该回调函数中的id来检测我想要更新的行。我不确定替换所有td标签的最佳技术是什么。这种技术有一个例外。我已替换数据的行上没有id。如果有人知道更好的方法,请告诉我。谢谢。

window.parent.document.getElementById("New_"+fnObj.DATA).outerHTML = "<td>"+document.getElementById("newBegDt").value+"</td><td>"+document.getElementById("newEndDt").value+"</td><td>document.getElementById("newCity").value</td>";
                        window.parent.document.getElementById(dType+"_"+fnObj.DATA).id = 'New_'+fnObj.DATA;

1 个答案:

答案 0 :(得分:2)

试试这个:

var newtr = "<tr id='" + "New_"+fnObj.DATA  + "'><td>"+document.getElementById("newBegDt").value+"</td><td>"+document.getElementById("newEndDt").value+"</td><td>" + document.getElementById("newCity").value + "</td></tr>";

$("#New_"+fnObj.DATA ).replaceWith(newtr);

如果您不想使用jquery,可以使用以下内容:

var currentTr = document.getElementById("New_"+fnObj.DATA), parent = currentTr.parentNode,
tempDiv = document.createElement('div');

tempDiv.innerHTML =  "<tr id='" + "New_"+fnObj.DATA  + "'><td>"+document.getElementById("newBegDt").value+"</td><td>"+document.getElementById("newEndDt").value+"</td><td>" + document.getElementById("newCity").value + "</td></tr>";

var input = tempDiv.childNodes[0];

parent.replaceChild(input, currentTr);