未捕获的TypeError:无法在“ Range”上执行“ selectNode”:参数1的类型不是“ Node”

时间:2019-07-11 06:41:26

标签: reactjs

我想复制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));中。

如何解决此错误?

1 个答案:

答案 0 :(得分:0)

此行之后:

let item = this.refs.exportData.outerText

itemstring,而不是DOM节点,稍后您将在document.getElementById中使用它。 `

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