Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/376.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/79.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中复制段落元素中的文本?_Javascript_Html_Scripting_Dynamic Html - Fatal编程技术网

如何从JavaScript中复制段落元素中的文本?

如何从JavaScript中复制段落元素中的文本?,javascript,html,scripting,dynamic-html,Javascript,Html,Scripting,Dynamic Html,嘿,我是一个新的开发人员,我试图建立一个网站。网站的主要目标是为访问者提供一段文字。我的一些助手给了我一个javascript来复制元素中的文本。但它不起作用。单击按钮时,中的文本不会被复制。如果您知道答案,请使用我的常量、可验证值和其他值。 我的Javascript var buttons = document.getElementsByClassName('copystatus'); for (let button of buttons) { button.addEventListe

嘿,我是一个新的开发人员,我试图建立一个网站。网站的主要目标是为访问者提供一段文字。我的一些助手给了我一个javascript来复制

元素中的文本。但它不起作用。单击按钮时,

中的文本不会被复制。如果您知道答案,请使用我的常量、可验证值和其他值。 我的Javascript

 var buttons = document.getElementsByClassName('copystatus');

for (let button of buttons) {
  button.addEventListener('click', function() {
     let statusElement = this.closest('.latestatus');
     let textToCopy = statusElement.getElementsByClassName('copytxt')[0].innerHTML;
    
    copyTextToClipboard(textToCopy);
    addCopyStatusAlert(this.parentNode);
  });
}

function copyTextToClipboard(text) {
  const copyText = document.createElement('textarea');
  copyText.style.position="absolute";
  copyText.style.display="none";
  copyText.value = text;

  document.body.appendChild(copyText);
  copyText.select();
  document.execCommand('copy');
  document.body.removeChild(copyText);
}

function addCopyStatusAlert(element) {
  if (!element.getElementsByClassName('status-copy-alert').length) {
    let copyAlertElement = document.createElement('span');
    copyAlertElement.classList.add('status-copy-alert')
    let copyMessage = document.createTextNode('Copied!');
    copyAlertElement.appendChild(copyMessage);

    element.appendChild(copyAlertElement);
    setTimeout(function() {
      element.removeChild(copyAlertElement);
    }, 700);
  }
}
我的Html

<div class="mainStatus">
   <h2 class="statusHeading">Latest English Status</h2>
   <div class="allStatus">
    <div class="bock">
     <div class="latestatus">
      <p class="copytxt">Life is good when you have books</p>
      <div>
       <button class="copystatus btn">Copy</button>
      </div>
     </div>
     <div class="latestatus">
      <p class="copytxt">Google is an open source library by Larry Page and Sergey Brin!</p>
      <div>
       <button class="copystatus btn">Copy</button>
      </div>
     </div>
    </div>
    <div class="block">
     <div class="latestatus">
      <p class="copytxt">Cats are better than dogs.</p>
      <div>
       <button class="copystatus btn">Copy</button>
      </div>
     </div>
     <div class="latestatus">
      <p class="copytxt">Cats are better than dogs.</p>
      <div>
       <button class="copystatus btn">Copy</button>
      </div>
     </div>
    </div>
   </div>
  </div>

最新英语状况
有书的生活是美好的

复制

谷歌是拉里·佩奇和谢尔盖·布林的开源图书馆

复制 猫比狗好

复制 猫比狗好

复制
请细化代码,以便在单击相应按钮时可以复制

元素中的文本


另外,任何人都可以修改上面的代码,这样我就不必重复给

(可选)

类。如果需要将文本绘制到屏幕上,以便可以选择它,请尝试删除
copyText.style.display=“无”,或用其他方法替换,例如:

copyText.style.left="-99999px";
copyText.style.zIndex="99999";
是的,我们应该搬走
copyText.style.display=“none”
那么代码将完美运行。 扎克的回答
谢谢你

当你说“不工作”时,有什么问题?有错误吗?是否未找到元素?单击按钮时,段落内的文本不会被复制。