将表格单元格复制到剪贴板而不使用输入标记-Javascript和html

将表格单元格复制到剪贴板而不使用输入标记-Javascript和html,javascript,html,forms,clipboard,Javascript,Html,Forms,Clipboard,我有一个简单的函数,它允许你点击任何表格单元格,并将数据复制到剪贴板。该单元格也会闪烁红色,让您知道它已被复制。这很好,但您会注意到每个单元格中都有一个输入标记(我发现的所有类似示例都使用了输入或其他一些表单标记),我不需要输入,因为单元格中的数据不会更改。有没有一种不用输入标签的方法可以做到这一点。普通表格单元格中的数据是否为innerHTML,是否可以单击复制?请不要用jQuery 函数myFunction(itemid){ var copyText=document.getElement

我有一个简单的函数,它允许你点击任何表格单元格,并将数据复制到剪贴板。该单元格也会闪烁红色,让您知道它已被复制。这很好,但您会注意到每个单元格中都有一个输入标记(我发现的所有类似示例都使用了输入或其他一些表单标记),我不需要输入,因为单元格中的数据不会更改。有没有一种不用输入标签的方法可以做到这一点。普通表格单元格中的数据是否为
innerHTML
,是否可以单击复制?请不要用jQuery

函数myFunction(itemid){
var copyText=document.getElementById(itemid);
copyText.select();
文件。执行命令(“副本”);
//闪烁红色
document.getElementById(itemid).style.backgroundColor=“#FF0000”;
setTimeout(函数(){document.getElementById(itemid).style.backgroundColor=“#FFFFFF”;},300);
}
::选择{背景:无;}
输入{大纲:0;光标:指针}

试试这个,动画由你决定

        let table = document.getElementById('tableId');

    table.addEventListener('click', (e) => {
        let target = e.target;
        if(target.localName === 'td') {
            let range = document.createRange();
            range.selectNodeContents(target);  
            let sel= document.getSelection(); 
            sel.removeAllRanges(); 
            sel.addRange(range); 

            document.execCommand('copy');
            sel.removeAllRanges();
            target.classList.add('copy-animate');
            setTimeout(() => {
                target.classList.remove('copy-animate');
            }, 200);
        }
    });

谢谢,但它不起作用,我做错了什么。我对javascript没有经验。。。。下面是代码…哦,我不知道如何在commentUncaught TypeError中显示我的代码:无法读取Null的属性'addEventListener'。是否添加了表元素an id=tableId?是的,我添加了。我肯定我在做傻事。等一下,我会把我的添加到你的密码中。。。