Uncaught TypeError: text.select is not a function
我正在尝试使用javascript实现复制到剪贴板的功能,这意味着当用户单击复制按钮时,可以复制文本区域中的文本。这是脚本中用于执行此功能的代码。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | var item = document.getElementsByClassName('js-copyBtn'); for(var i=0; i < item.length; i++){ item[i].addEventListener('click', function(event){ var text = document.getElementsByClassName('js-text'); text.select(); try{ var successful = document.execCommand('copy'); var msg = successful ? 'successful' : 'unsuccessful'; console.log('Copy was ' + msg); } catch(err) { console.log('Oops, unable to copy'); } }); } |
但是,当我运行这个程序时,我在Google Chrome控制台上收到一个错误,说uncaught typeerror:text.select不是一个函数。我也在其他浏览器上测试过,但得到了相同的结果。还有人遇到这个问题吗?
您可能需要集合中的第一个元素
1 2 | var text = document.getElementsByClassName('js-text'); text[0].select(); |
今天我遇到了这个问题,当有标记的答案对我不起作用时,我和你一样感到沮丧。经过一些额外的思考,我意识到我的问题是试图粘贴到段元素
中。当我把它改成文本区时,它工作得很好。所以您对数组的访问确实有问题,但是当您最终到达特定的元素时,您应该确保它是一个可编辑的元素。
祝你好运!
GetElementByClassName返回元素数组所以,您必须使用文本[0].select();
如果只有一个这样的元素,则可以使用数组索引器来检索第一个元素。
或者,如果只有一个这样的元素,您可以考虑给这个元素一个