javascript - 对于具有相同类的无限元素,如何将无限数量的副本复制到剪贴板?
问题描述
我的 HTML:
<Div Class='POSTS'>
<Div Class='POST'>
<Div Class='CONTENT'>Text1</Div>
</Div>
<Div Class='POST'>
<Div Class='CONTENT'>Text2</Div>
</Div>
<Div Class='POST'>
<Div Class='CONTENT'>Text3</Div>
</Div>
<Div Class='POST'>
<Div Class='CONTENT'>Text4</Div>
</Div>
<Div Class='POST'>
<Div Class='CONTENT'>Text5</Div>
</Div>
<Div Class='POST'>
<Div Class='CONTENT'>Text6</Div>
</Div>
</Div>
它继续没有任何限制......(永无止境)每个元素内部都有不同的文本,具有“CONTENT”类。
我搜索了这个网站,发现了这个:
https://Stackoverflow.Com/Questions/400212/How-Do-I-Copy-To-The-Clipboard-In-Javascript
但在我正在工作的项目中,我无法在每个元素上指定 Id,因为你知道它是无限数量的这些元素:
<Div Class='POST'>
<Div Class='CONTENT'>some text</Div>
</Div>
所以需要自动添加。
我想要:当用户点击“内容”类的元素内部的文本时(不管文本有多长和它有什么),整个文本和标签和......被复制到 Clipbored。
我不想设置按钮!我想做整体
标签、文本和.... 无限制地复制到每个标签上!通过点击它自己的文本。(想象这是一个文本区域,用户点击其中的文本,js复制所有文本,但这个是div,里面有文本)如果您认为我错过了某事并且还不够清楚,请告诉我!
提前致谢!
解决方案
这应该可以解决您的问题。首先选择整个对象,然后获取被点击的元素。复制内容。
var posts = document.querySelector(".POSTS");
posts
.addEventListener("click", function (e) {
console.log("index", e.target);
navigator.clipboard.writeText(e.target.innerText).then(
function () {
console.log("Async: Copying to clipboard was successful!");
},
function (err) {
console.error("Async: Could not copy text: ", err);
}
);
});
推荐阅读
- python-3.x - AsyncIO 流写入器/读取器是否需要手动确保所有数据都已发送/接收?
- kubernetes - 如何找出 kubelet 在哪里创建 emptyDirs?
- reactjs - 如何使用 React 和 Redux 创建 Public Navbar 和 Protected Navbar?
- django - 如何检查 Django 模板中是否选中了复选框
- selenium - 用于 Selenium 的 Jenkins Kubernetes 插件 - Maven 拉取依赖项但无法编译
- excel - 将工作表保持在工作簿的首位
- media - 鲁弗斯没有开始
- reactjs - 嵌套上下文似乎不会返回内部上下文
- javascript - ReactQuill - 提交表单后如何将正文归零?
- java - Android 3.5 不导入小部件