Javascript 如何更换tr内的所有td元件?
我的父页面上有html表,其中包含一些数据:Javascript 如何更换tr内的所有td元件?,javascript,html,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 使用更新特定行中的元素后,我希望替换该行的所有内容。每一行都有唯一的
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实现这一点。以下是我迄今为止的例子:
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;
window.parent.document.getElementById(“New拞”+fnObj.DATA).outerHTML=“”+document.getElementById(“newBegDt”).value+“”+document.getElementById(“newEndDt”).value+“document.getElementById(“newCity”).value”;
window.parent.document.getElementById(dType+“”+fnObj.DATA).id='New_u'+fnObj.DATA;
试试这个:
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);
var newtr=“”+document.getElementById(“newBegDt”).value+“”+document.getElementById(“newEndDt”).value+“”+document.getElementById(“newCity”).value+“”;
$(“#新的”+fnObj.DATA).replace为(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);
var currentTr=document.getElementById(“新的”+fnObj.DATA),parent=currentTr.parentNode,
tempDiv=document.createElement('div');
tempDiv.innerHTML=“”+document.getElementById(“newBegDt”).value+“”+document.getElementById(“newEndDt”).value+“”+document.getElementById(“newCity”).value+“”;
var input=tempDiv.childNodes[0];
parent.replaceChild(输入,currentTr);
为什么不;你不能只是在单元格上循环并替换内容,或者插入新行并删除旧行。将outerHTML
更改为innerHTML
。当使用outerHTML
时,您也在替换tr
。也就是说,jQuery和OP没有将问题标记为与jQuery相关(很可能没有使用它),我正在寻找JavaScript解决方案。谢谢。有一个问题,你为什么要创建div元素?@espresso_coffee:你可以改进这个解决方案,但是创建div是我发现写得更少的形式。我使用了类似的东西,但这对我帮助很大。非常感谢。