Javascript 通过单击文本本身将文本复制到剪贴板

Javascript 通过单击文本本身将文本复制到剪贴板,javascript,Javascript,所以我有一大堆文本,文本中有一些单词,它们周围有括号 见下文: 目前,我正在用PHP做一个pre_replace,基本上将[]之间的任何文本放入一个跨距中,然后在该跨距中对它们进行着色,并给出一个可单击的类 我基本上希望能够点击文本,它会将该单词复制到剪贴板 现在我有了这个PHP: $note = preg_replace('%(\[(.+?)\])%m', '<span style="color: #009EC0;" class="hover-cursor clickable">

所以我有一大堆文本,文本中有一些单词,它们周围有括号

见下文:

目前,我正在用PHP做一个pre_replace,基本上将[]之间的任何文本放入一个跨距中,然后在该跨距中对它们进行着色,并给出一个可单击的类

我基本上希望能够点击文本,它会将该单词复制到剪贴板

现在我有了这个PHP

$note = preg_replace('%(\[(.+?)\])%m', '<span style="color: #009EC0;" class="hover-cursor clickable">$1</span>', $note);
然而,这给了我一个错误的说法: 无法读取null的属性“addEventListener”


那么我如何才能做到这一点呢?

这是您的问题:
document.getElementById('.clickable')
,请注意
。其次,这可能对您有帮助:使用
getElementByClassname('clickable')
@HimanshuUpadhyay我想您的意思是
getElementsByClassName()
。请注意,如果这样做,则需要循环生成的集合,或通过索引访问它。@Rorymcrossan I已删除
,但仍会导致错误,无法读取null的属性“addEventListener”。您提供的链接也是我获取此代码并尝试将其改编为我的代码的地方,但没有任何效果:(DOM中是否存在具有
id
clickable
元素?
// Copy replace variable to clipboard

document.getElementById('.clickable').addEventListener('click', function(event) 
{
    var copyTextarea = document.querySelector('.clickable');

    copyTextarea.select();

    try 
    {
        var successful = document.execCommand('copy');
        var msg = successful ? 'successful' : 'unsuccessful';
        console.log('Copying text command was ' + msg);
    } 
    catch (err) 
    {
        console.log('Oops, unable to copy');
    }
});