如何从JavaScript中复制段落元素中的文本?
嘿,我是一个新的开发人员,我试图建立一个网站。网站的主要目标是为访问者提供一段文字。我的一些助手给了我一个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
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”
那么代码将完美运行。
扎克的回答
谢谢你当你说“不工作”时,有什么问题?有错误吗?是否未找到元素?单击按钮时,段落内的文本不会被复制。