首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >不能在appendChild内Tr>Div

不能在appendChild内Tr>Div
EN

Stack Overflow用户
提问于 2017-11-05 18:08:57
回答 3查看 273关注 0票数 1

我有两个表,当我尝试将appendChild第二个表放入table1 (tbl1) tr时,table2 (tbl2)秋季删除<table...>标签:

代码语言:javascript
复制
function myFunction() {
    var tabletr = document.getElementById("tbl1");
    var rowtr = tabletr.insertRow(1);
    rowtr.appendChild(document.getElementById("tbl2"));

    rowtr.outerHTML = "<div>" + rowtr.outerHTML + "</div>";
	
}
代码语言:javascript
复制
<table id='tbl1' style='background: lightblue;'>
<tr>
<td>table 1 - 1-1</td>
<td>table 1 - 1-2</td>
</tr>
<tr>
<td>table 1 - 2-1</td>
<td>table 1 - 2-2</td>
</tr>
</table>
<br />
<hr />
<table id='tbl2' style='background: lightgray;'>
<tr>
<td>table 2 - 1-1</td>
<td>table 2 - 1-2</td>
</tr>
</table>


<button onclick="myFunction()">Try it</button>

截图:

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2017-11-05 18:29:44

需要在牢房里放div。

代码语言:javascript
复制
function myFunction() {
    var tabletr = document.getElementById("tbl1");
    var rowtr = tabletr.insertRow(-1);
    var cell = rowtr.insertCell(0);
    cell.colSpan = 2;
    var div = document.createElement("div"); 
    div.appendChild(document.getElementById("tbl2"));
    cell.appendChild(div);
}
代码语言:javascript
复制
<table id='tbl1' style='background: lightblue;'>
  <tr>
  <td>table 1 - 1-1</td>
  <td>table 1 - 1-2</td>
  </tr>
  <tr>
  <td>table 1 - 2-1</td>
  <td>table 1 - 2-2</td>
  </tr>
</table>
<br />
<hr />
<table id='tbl2' style='background: lightgray;'>
  <tr>
  <td>table 2 - 1-1</td>
  <td>table 2 - 1-2</td>
  </tr>
</table>


<button onclick="myFunction()">Try it</button>

票数 1
EN

Stack Overflow用户

发布于 2017-11-05 18:17:01

当您对第二个表进行appendChild()时,它将从DOM中的当前位置移除,并插入您所指向的位置。这就是为什么是该起作用

Node.appendChild()方法将一个节点添加到指定父节点的子节点列表的末尾。如果给定的子节点是对文档中现有节点的引用,则appendChild()将其从当前位置移动到新位置(在将该节点附加到其他节点之前,不需要从其父节点中移除该节点)。

您还会得到无效的HTML。<tr>元素的唯一有效子元素是<td> (或<th>),行必须至少有其中一个子元素才是有效的。

票数 0
EN

Stack Overflow用户

发布于 2017-11-05 18:17:44

由于您在表的后面,它会被移动。如果你想复制它,就克隆它。另外,不要编辑outerHTML。校正片段

代码语言:javascript
复制
function myFunction() {
  var tabletr = document.getElementById("tbl1");
  var rowtr = tabletr.insertRow(1);
  rowtr.appendChild(document.getElementById("tbl2").cloneNode(true));
}
代码语言:javascript
复制
table,
tr,
td {
  border: 1px solid;
}
代码语言:javascript
复制
<table id='tbl1' style='background: lightblue;'>
  <tr>
    <td>table 1 - 1-1</td>
    <td>table 1 - 1-2</td>
  </tr>
  <tr>
    <td>table 1 - 2-1</td>
    <td>table 1 - 2-2</td>
  </tr>
</table>
<hr>
<table id='tbl2' style='background: lightgray;'>
  <tr>
    <td>table 2 - 1-1</td>
    <td>table 2 - 1-2</td>
  </tr>
</table>
<button onclick="myFunction()">Try it</button>

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47124889

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档