【问题标题】:Add a row to an existing table向现有表中添加一行
【发布时间】:2013-02-27 11:50:15
【问题描述】:

我已阅读this question from SO,但未能满足我的需求。你能帮帮我吗?

我有这个插件生成的 html:

<table cellspacing="0" class="grid" style="width: 30%">
<tr>
<th colspan="13" style="text-align: left; ">
<a rel="nofollow" href="http://...">Unique</a>&nbsp;(1&nbsp;issues) </th>
</tr>
<tr>
<th style="text-align: left; text-transform: capitalize;">Head1</th>
<th style="text-align: left; text-transform: capitalize;">Head2</th>
<th style="text-align: left; text-transform: capitalize;">Head3</th>
<th style="text-align: left; text-transform: capitalize;">Head4</th>
<th style="text-align: left; text-transform: capitalize;">Head5</th>
<th style="text-align: left; text-transform: capitalize;">Head6</th>
<th style="text-align: left; text-transform: capitalize;">Head7</th>
<th style="text-align: left; text-transform: capitalize;">Head8</th>
<th style="text-align: left; text-transform: capitalize;">Head9</th>
<th style="text-align: left; text-transform: capitalize;">Head10</th>
<th style="text-align: left; text-transform: capitalize;">Head11</th>
<th style="text-align: left; text-transform: capitalize;">Head12</th>
<th style="text-align: left; text-transform: capitalize;">Head13</th>
</tr>
<tr class="rowNormal">
<td nowrap="true">

<p><a href="http:...">Data1</a></p>
</td>
<td nowrap="true">

Data 2, 2 ,2
</td>
<td nowrap="true">

 Data 3, 3, 3
 </td>
 <td nowrap="true">

 <img src="http://..." alt="" border="0" /> Data4
 </td>
 <td nowrap="true">

 Green
 </td>
 <td nowrap="true">

 Smith, John
 </td>
 <td nowrap="true">

 Fritz, Scott
 </td>
 <td nowrap="true">

 Data6
 </td>
<td nowrap="true">

 Data7
 </td>
 <td nowrap="true">

 Data 8
 </td>
 <td nowrap="true">

  Data9
 </td>
 <td nowrap="true">

 345
 </td>
 <td nowrap="true">

 764
 </td>
 </tr>
 </table>

经过几次传递后我进行了转换:

  $("table:contains('Unique')").removeClass("grid");
  $("table:contains('Unique')").find("th").parent("tr").addClass("hidden");
  $("table:contains('Unique')").find("img").addClass("hidden");
  $("table:contains('Unique') td[nowrap='true']").wrap("tr");

进入DataX的一列

现在我想将这些数据中的每一个作为一行附加到这个现有的表中:

          <div class="table-wrap"><table class="mytable"><tbody><tr><td colspan="1" class="tabletd"><strong>name1</strong></td></tr><tr><td colspan="1" class="tabletd"><strong>name 2</strong></td></tr><tr><td class="tabletd"><strong>name 3</strong></td></tr><tr><td colspan="1" class="tabletd"><strong>name4</strong></td></tr><tr><td class="tabletd"><strong>name2</strong></td></tr><tr><td colspan="1" class="tabletd"><strong>name5</strong></td></tr><tr><td colspan="1" class="tabletd"><strong>name 6</strong></td></tr><tr><td colspan="1" class="tabletd"><strong>name 7</strong></td></tr><tr><td colspan="1" class="tabletd"><strong>name 8 </strong></td></tr><tr><td colspan="1" class="tabletd"><strong>name 9<br /> </strong></td></tr><tr><td colspan="1" class="tabletd"><strong>name 10</strong></td></tr><tr><td colspan="1" class="tabletd"><strong>digit 1<br /> </strong></td></tr><tr><td colspan="1" class="tabletd"><strong>digit 2<br /> </strong></td></tr></tbody></table></div>

所以在结果中我有第二个表中的一个单元格的行,一个来自第一个表。即:

       Name 1      Data1
       Name 2      Data2
       Name 3      Data2

非常感谢任何帮助。

【问题讨论】:

  • 我会缓存你的表对象: var table = $("table:contains('Unique')") 然后使用 .append() 将你的代码添加到它(但不要忘记你将需要使用正确的 colspan 创建行和列)
  • 下面不追加添加行,而不是右边的列?正如链接的问题所暗示的那样,我将不得不以某种方式遍历每个 tr。

标签: jquery html-table


【解决方案1】:

看看 .append Jquery 方法:http://api.jquery.com/append/

你可能想要做类似的事情:

$(your_table).append($(your_data).wrap("<tr></tr>"));

会:

  1. 使用 your_data 创建一个 jquery 对象
  2. 将它们包含在一个元素中
  3. 将所有这些添加到 your_table 中

【讨论】:

  • 这正是我遇到的问题 - 我需要的不是原始 html,而是由上面的 jqueries 处理的那个。我真的不知道该怎么做,所以这个问题。
  • JQuery 可以操作 DOM 内部的元素。因此,您可以使用 .clone (api.jquery.com/clone) 创建原始表的副本。对该对象进行处理(不在 DOM 中)并将处理后的对象添加到目标表中。
  • 嗯,它不会将数据追加为下面的行,而不是我需要的右边的列吗?我在顶部链接的问题逐个单元格地附加。
猜你喜欢
  • 2012-10-13
  • 2019-04-04
  • 2011-02-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-06-24
  • 2013-02-21
相关资源
最近更新 更多