首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我如何制作它,以便当您单击代码标记的元素时,可以复制它的innerHTML

我如何制作它,以便当您单击代码标记的元素时,可以复制它的innerHTML
EN

Stack Overflow用户
提问于 2022-07-16 07:47:43
回答 2查看 35关注 0票数 0

我希望这样做,以便当单击任何带有代码标记的元素时,用户会复制该元素的innerHTML。但问题是,我有6-7个元素和代码标记,我尝试过这样做:

代码语言:javascript
复制
const code1 = document.getElementsByTagName('CODE')[0];
const code2 = document.getElementsByTagName('CODE')[1];
const code3 = document.getElementsByTagName('CODE')[2];
const code4 = document.getElementsByTagName('CODE')[3];
const code5 = document.getElementsByTagName('CODE')[4];
const code6 = document.getElementsByTagName('CODE')[6];
const code7 = document.getElementsByTagName('CODE')[7];

function copytext(text) {
    navigator.clipboard
        .writeText(text)
        .then(() => {
        })
        .catch(() => {
            alert("something went wrong");
        });
}

code1.addEventListener('click', function handleClick() {
    copytext(hello1);
});

code2.addEventListener('click', function handleClick() {
    copytext(hello2);
});

code3.addEventListener('click', function handleClick() {
    copytext(hello3);
});

code4.addEventListener('click', function handleClick() {
    copytext(hello3);
});

code5.addEventListener('click', function handleClick() {
    copytext(hello4);
});

code6.addEventListener('click', function handleClick() {
    copytext(hello5);
});

code7.addEventListener('click', function handleClick() {
    copytext(hello6);
});

但我觉得这太重复了。是否有一种方法可以选择每个带有代码标记的元素,并复制其innerHTML,而不必为每个元素编写一个函数?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-07-16 07:52:59

访问this元素

代码语言:javascript
复制
for(let element of document.getElementsByTagName('CODE')){
  element.addEventListener('click',GetInnerHTML);
}
function GetInnerHTML(){console.log(this.innerHTML);}
代码语言:javascript
复制
CODE{display:block}
代码语言:javascript
复制
<CODE>A</CODE>
<CODE>B</CODE>

票数 0
EN

Stack Overflow用户

发布于 2022-07-16 07:57:07

返回数组的document.getElementsByTagName(),这样您就可以完成以下操作

代码语言:javascript
复制
let codes = document.getElementsByTagName();
codes.foreach((element)=>{
element.addEventListener('click', () => {copytext(element)})
});
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73002485

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档