首页 > 解决方案 > 未捕获的类型错误:无法在“范围”上执行“选择节点”:参数 1 不是“节点”类型

问题描述

我想复制 HTML 表格的内容。复制表的代码是:

copyTable(){
    let item = this.refs.exportData.outerText\\data in the table
    this.copyData(item)
}

copyData(item){

if (item) {
    if (document.selection) { // IE
      var range = document.body.createTextRange();
      range.moveToElementText(document.getElementById(item));
      range.select();
      document.execCommand('copy');
  } else if (window.getSelection) {
      var range = document.createRange();
      range.selectNode(document.getElementById(item));
      window.getSelection().removeAllRanges();
      window.getSelection().addRange(range);
      document.execCommand('copy');
  }
}

我收到错误“未捕获的 TypeError:无法在 'Range' 上执行 'selectNode':参数 1 不是 'Node' 类型。” 在代码行中 range.selectNode(document.getElementById(item));

我该如何解决这个错误?

标签: reactjs

解决方案


遵循这一行:

let item = this.refs.exportData.outerText

item是 astring而不是 DOM 节点,而您稍后在document.getElementById. `

//item is a DOM Node
let item = this.refs.exportData
/* ... */
range.selectNode(item);

推荐阅读