Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何更换tr内的所有td元件?_Javascript_Html - Fatal编程技术网

Javascript 如何更换tr内的所有td元件?

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 使用更新特定行中的元素后,我希望替换该行的所有内容。每一行都有唯一的

我的父页面上有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实现这一点。以下是我迄今为止的例子:

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是我发现写得更少的形式。我使用了类似的东西,但这对我帮助很大。非常感谢。