0

我对 Java Script 非常陌生,并且真的只有 C++ 的经验。我一直在寻找以下问题的答案,但结果很短。任何人可能愿意提供的任何帮助将不胜感激。

我正在尝试编写一个 JavaScript,单击按钮将复制一个表格行并删除 TR /TR 标记并将其替换为 P /P 然后将其存储到一个变量中,我可以创建一个新格式复制和粘贴友好,没有表格单元格,或者将该信息复制到剪贴板,我可以轻松地将其粘贴到 word 中。目前我已经能够克隆表格行但无法解析标签之间的数据并删除表格格式并添加段落格式。

谢谢你。

这是一个小型演示程序,它完成了我想做的第一步。您会注意到,如果您选中部分的框并单击截断,未选中的框将消失。我现在需要做的是将这些复选框中的文本(但只有文本并且每个都成为一个段落)复制到剪贴板,或者让它们以文字复制和粘贴友好的格式进行解析和打印。

脚本:

  var section0 = 6; //# of Basic Conditions
  function cloneTable() {
    for(var i = 0; i < section0; i++) //Basic Conditions
    {
      if(i == 0 || document.getElementById("check00-" + i).checked) {
        var row = document.getElementById('condition00-' + i); // find row to copy
        var table = document.getElementById("table2"); // find table to append to
        var clone = row.cloneNode(true); // copy children too
        clone.id = "newID"; // change id or other attributes/contents
        table.appendChild(clone); // add new row to end of table
      }
    }
    var elem = document.getElementById('table1')
    elem.parentNode.removeChild(elem);
  }

标记:

<table width=890 style='table-layout:fixed'>
  <col width=20>
    <col width=30>
      <col width=840>
        <tbody id="table1">
          <tr id="condition00-0">
            <td width=20 valign="top">
              <input type="checkbox" id="check00-0">
            </td>
            <td colspan="2" align="left"><font size="6" face="Arial"><a  name="Bookmark1">Header</a></font>
            </td>
          </tr>
          <tr id="condition00-1">
            <td valign="top">
              <input type="checkbox" id="check00-1" onclick="MainTitles('check00-0')">
            </td>
            <td valign="top"><font size="4" face="Arial">1.</font>
            </td>
            <td align="left" style="word-wrap: break-word"><font size="4" face="Arial">Text section1</font>
            </td>
          </tr>
          <tr id="condition00-2">
            <td valign="top">
              <input type="checkbox" id="check00-2" onclick="MainTitles('check00-0')">
            </td>
            <td valign="top"><font size="4" face="Arial">2.</font>
            </td>
            <td align="left" style="word-wrap: break-word"><font size="4" face="Arial">Text section 2</font>
            </td>
          </tr>
          <tr id="condition00-3">
            <td valign="top">
              <input type="checkbox" id="check00-3" onclick="MainTitles('check00-0')">
            </td>
            <td valign="top"><font size="4" face="Arial">3.</font>
            </td>
            <td align="left" style="word-wrap: break-word"><font size="4" face="Arial">Text section 3</font>
            </td>
          </tr>
          <tr id="condition00-4">
            <td valign="top">
              <input type="checkbox" id="check00-4" onclick="MainTitles('check00-0')">
            </td>
            <td valign="top"><font size="4" face="Arial">4.</font>
            </td>
            <td align="left" style="word-wrap: break-word"><font size="4" face="Arial">Text Section 4</font>
            </td>
          </tr>
          <tr id="condition00-5">
            <td valign="top">
              <input type="checkbox" id="check00-5" onclick="MainTitles('check00-0')">
            </td>
            <td valign="top"><font size="4" face="Arial">5.</font>
            </td>
            <td align="left" style="word-wrap: break-word"><font size="4" face="Arial">Text Section 5</font>
            </td>
          </tr>
        </tbody>
</table>
</div>
<table width=890 style='table-layout:fixed'>
  <col width=20>
    <col width=30>
      <col width=840>
        <tbody id="table2"></tbody>
</table>
<input type="button" onclick="cloneTable()" value="Truncate" />

JSFiddle: 测试链接

4

1 回答 1

0

您可以将行作为 DOM 元素访问,遍历它们的每个单元格,并解析 innerHTML 以获取您的值。

请参阅这篇文章:如何动态计算 HTML 页面上表格中每一列的总数?

例子:

function strip(html) { // This is a very popular + useful technique.
   var tmp = document.createElement("DIV");
   tmp.innerHTML = html;
   return tmp.textContent||tmp.innerText;
}

var tbl = document.getElementById('my-table');
var rows = tbl.rows;
for (var i = 0; i < rows.length; i++) {
   var cells = rows[i].cells;
   for var j = 0; j < cells.length; j++) {
      alert(strip(cells[j].innerHTML));
   }
}
于 2013-03-13T04:59:17.113 回答