Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/384.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 从剪贴板中的多个div复制多个文本_Javascript_Html_Copy_Paste - Fatal编程技术网

Javascript 从剪贴板中的多个div复制多个文本

Javascript 从剪贴板中的多个div复制多个文本,javascript,html,copy,paste,Javascript,Html,Copy,Paste,因此,我在HTML文件中嵌套了div标记。我试图从每个div标签复制某些文本。经过几个小时的搜索,我终于找到了有效的方法。解决方案如下: <html> <body> <div id="a" onclick="copyDivToClipboard()"> Click to copy </div> <script>

因此,我在HTML文件中嵌套了
div
标记。我试图从每个
div
标签复制某些文本。经过几个小时的搜索,我终于找到了有效的方法。解决方案如下:

    <html>
        <body>
            <div id="a" onclick="copyDivToClipboard()"> Click to copy </div>
            <script>
                function copyDivToClipboard() {
                    var range = document.createRange();
                    range.selectNode(document.getElementById("a"));
                    window.getSelection().removeAllRanges(); // clear current selection
                    window.getSelection().addRange(range); // to select text
                    document.execCommand("copy");
                    window.getSelection().removeAllRanges();// to deselect
                }
            </script>
        </body>
    </html>
在评论了我找到的解决方案后,他建议我查看
Range.setStart()
Range.setEnd()
。但我就是不知道如何应用这些,因为我对
Javascript
相对较新


另外,这几个
span
标记用于不同的类进行样式设置。

我对您的代码进行了一些修改,请查看一下,看看这是否有帮助

var elements=document.getElementsByClassName(“parentDiv”);
数组.from(元素).forEach(函数(元素){
元素。addEventListener('click',copyTextToClipboard);
});
函数copyTextToClipboard(){
var selection=window.getSelection();
var range=document.createRange();
让dataToCopy=this.getElementsByClassName('text_-to_-copy');
范围。选择节点内容(数据复制[0]);
selection.removeAllRanges();
选择。添加范围(范围);
文件。执行命令(“副本”);
window.getSelection().removeAllRanges()
}

我最喜欢的演员是小罗伯特·唐尼。
我最喜欢的演员是汤姆·克鲁斯
我最喜欢的演员是休·杰克曼
我最喜欢的演员是瑞安·戈斯林

如果我理解正确,您想用
text\u to\u copy
类复制
元素
中的所有文本吗?是的,谢谢。这很好用。在函数
窗口的最后一行中,可以添加getSelection().removeAllRanges()
,以取消选择看起来不错的选项。
<div>
  <div onclick="copyTextToClipboard()">
    <span>My favorite actor is <span class="text_to_copy">Robert Downey, Jr.</span></span>
  </div>
  <div onclick="copyTextToClipboard()">
    <span>My favorite actor is <span class="text_to_copy">Tom Cruise</span></span>
  </div>
  <div onclick="copyTextToClipboard()">
    <span>My favorite actor is <span class="text_to_copy">Hugh Jackman</span></span>
  </div>
  <div onclick="copyTextToClipboard()">
    <span>My favorite actor is <span class="text_to_copy">Ryan Gosling</span></span>
  </div>
</div>