Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/452.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
在添加带有HTML和Javascript输入的行时重置表输入值_Javascript_Jquery_Html_Html Table - Fatal编程技术网

在添加带有HTML和Javascript输入的行时重置表输入值

在添加带有HTML和Javascript输入的行时重置表输入值,javascript,jquery,html,html-table,Javascript,Jquery,Html,Html Table,我一直在琢磨为什么我的代码会这样运行 我的问题是,为什么当我使用addRow函数添加一个表行时,它会重置前面行的所有输入值 下面是显示我的问题的代码片段 函数addRow(){ //用于添加行的html(包含行标记和输入) htmlString=''; //将html字符串添加到tableTestSamples的tbody中 document.getElementById(“testTable”).getElementsByTagName(“tbody”)[0]。innerHTML+=html

我一直在琢磨为什么我的代码会这样运行

我的问题是,为什么当我使用addRow函数添加一个表行时,它会重置前面行的所有输入值

下面是显示我的问题的代码片段

函数addRow(){
//用于添加行的html(包含行标记和输入)
htmlString='';
//将html字符串添加到tableTestSamples的tbody中
document.getElementById(“testTable”).getElementsByTagName(“tbody”)[0]。innerHTML+=htmlString;
}

问题是您正在修改表的
内部HTML
。这会导致浏览器将表的内容视为HTML字符串,重新分析HTML,然后替换表的内容。由于浏览器不会更新
innerHTML
以反映输入标记中输入的值,因此这些值在此过程中将丢失

为了避免重置输入值,您需要操纵DOM,而不是操纵底层源代码。您仍然可以使用HTML创建新行,但需要使用以下函数将其添加到表中:

例如:

函数addRow(){
var行=document.createElement('tr');
row.innerHTML='';
var table=document.getElementById('the-table');
表2.追加子项(行);
}


添加行
问题是您正在修改表的
innerHTML
。这会导致浏览器将表的内容视为HTML字符串,重新分析HTML,然后替换表的内容。由于浏览器不会更新
innerHTML
以反映输入标记中输入的值,因此这些值在此过程中将丢失

为了避免重置输入值,您需要操纵DOM,而不是操纵底层源代码。您仍然可以使用HTML创建新行,但需要使用以下函数将其添加到表中:

例如:

函数addRow(){
var行=document.createElement('tr');
row.innerHTML='';
var table=document.getElementById('the-table');
表2.追加子项(行);
}


添加行
,这是因为修改元素的
innerHTML
会导致它替换所有现有子元素。尝试改用
appendChild()
。这是因为修改元素的
innerHTML
会导致它替换所有现有的子元素。尝试改用
appendChild()