复制html表中另一行的特定行

时间:2018-05-23 09:33:33

标签: javascript html

你好我很难找到一个简单的解决方案,也许你们中的一些人可以帮助我。

我想要做的是合并来自表中另一行的两个不同列的信息。

让我以一个例子来解释它会更容易。

这里是当前的HTML代码:

<table class="audit_table" id="audit_table_data">

<tr>
  <th>Name</th>
  <th>Interfaces</th>
  <th>Subnet</th>
</tr>

<tr id="74">
  <td>water</td>
  <td>Ethernet</td>
  <td>Default</td>
</tr>

<tr id="74">
  <td>water</td>
  <td>Test</td>
  <td>Sub_Test</td>
</tr>

</table>

这是预期的结果:

<table class="table_class" id="table">
<tr>
  <th>Name</th>
  <th>Interfaces</th>
  <th>Subnet</th>
</tr>

<tr id="74">
  <td>water</td>
  <td>Ethernet<br>Test</td>
  <td>Default<br>Sub_Test</td>
</tr>
</table>

由于两个tr元素具有相同的ID,这可能会这样做吗?

2 个答案:

答案 0 :(得分:0)

你应该为两个'tr'元素使用相同的类:

<table class="audit_table" id="audit_table_data">

<tr>
  <th>Name</th>
  <th>Interfaces</th>
  <th>Subnet</th>
</tr>

<tr class="74">
  <td rowspan="2">water</td>
  <td>Ethernet</td>
  <td rowspan="2">Default</td>
</tr>
<tr>
  <td>test</td>
</tr>

<tr class="74">
  <td rowspan="2">water</td>
  <td>Test</td>
  <td rowspan="2">Sub_Test</td>
</tr>
<tr>
  <td>sub_test</td>
</tr>

</table>

答案 1 :(得分:0)

在页面中两次使用相同的ID是不正确的,但是,作为一种解决方法,您可以将其中一个更改为不同的ID,然后调用“getElementById”。再次给你另一个元素。以下是您实际需要的示例:

&#13;
&#13;
//get the first element (row) by id
var a = document.getElementById(74);
//assign a different id to it
a.setAttribute("id", "99");

//get the second element (row) now
var b = document.getElementById(74);

//get nr of columns
var columns = a.getElementsByTagName('td').length;

for (var i = 0; i < columns; i++) {
	//if we have the same string in the same column for both rows we do nothing
  if (a.getElementsByTagName('td')[i].innerHTML == b.getElementsByTagName('td')[i].innerHTML) continue;
  //we add the column from the second row to the first row
  a.getElementsByTagName('td')[i].innerHTML += "<br>" + b.getElementsByTagName('td')[i].innerHTML;
}
//we remove the second row remaining with the first one which was previously modified
b.remove();
&#13;
<table class="audit_table" id="audit_table_data">

<tr>
  <th>Name</th>
  <th>Interfaces</th>
  <th>Subnet</th>
</tr>

<tr id="74">
  <td>water</td>
  <td>Ethernet</td>
  <td>Default</td>
</tr>

<tr id="74">
  <td>water</td>
  <td>Test</td>
  <td>Sub_Test</td>
</tr>

</table>
&#13;
&#13;
&#13;

我上面所做的是修改第一行,在单元格中包含两个字符串作为信息,然后删除第二行。