js复制table最后一个tr里的值

function copy(){
    var tb = document.getElementById('table');
    var tr = document.querySelectorAll("#table tr:last-of-type td").value;
    alert(tr);
    var copyalbe = tr;
    var input = document.createElement("input");
    input.value = copyalbe;
    document.body.appendChild(input);
    input.select();
    document.execCommand("copy");
    input.style.display = "none";
    alert("复制成功");
  }
<table id="table" width="200" border="1" cellspacing="0">
    <tr id="cow1">
      <td>123</td>
      <td>111</td>
    </tr>
    <tr id="cow2">
      <td>123</td>
      <td>111</td>
    </tr>
    <tr id="cow3">
      <td class="copyalbe">123</td>
      <td class="copyalbe">111</td>
    </tr>
  </table>
  <input id="btn" type="button" value="复制" onclick="copy()">

我想要获取table中最后一个tr里的两个td的值并复制,但不知道如何获取值,有老哥们指教下吗?

阅读 3.9k
1 个回答

你的要求是?
1、获取到 table 最后两个 td 的值。
2、将这两个值保存在粘贴板中,以便复制。

<table border="1">
  <tr>
    <td>123</td>
    <td>111</td>
  </tr>
  <tr>
    <td>123</td>
    <td>111</td>
  </tr>
  <tr>
    <td>222</td>
    <td>333</td>
  </tr>
</table>
<input type="button" value="复制" onclick="copy()" />

<br />
<p>点击复制后在下边 textarea 中 CTRL+V 看一下</p>
<textarea cols="30" rows="10"></textarea>

<script>
  function copy() {
    let values = [...document.querySelectorAll('table tr:last-child td')].map(t => t.innerHTML);
    /* 相当这样:
    var values = [];
    var tds = document.querySelectorAll('table tr:last-child td');
    for (var i=0; i< tds.length; i++) {
      values.push(tds[i].value);
    }
    */
    let input = document.createElement('input');
    document.body.appendChild(input);
    input.value = values.join('+');
    input.focus();
    input.setSelectionRange(0, input.value.length);
    document.execCommand('copy', true);
    document.body.removeChild(input);
  }
</script>
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题