首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何使用<Input>从getElementbyTagName复制文本?

如何使用<Input>从getElementbyTagName复制文本?
EN

Stack Overflow用户
提问于 2022-05-27 03:01:46
回答 1查看 85关注 0票数 1

我正在尝试创建一个按钮,它不使用ID从输入文本字段复制文本。

我认为最好的方法是使用事件侦听器,然后单击激活函数,从输入值复制文本。

HTML:

代码语言:javascript
运行
复制
<div>
 <input type="text" value="copy this" readonly>
 <button type=button id='btn'>Copy URL</button>
</div>

联署材料:

代码语言:javascript
运行
复制
  <script> 
  document.querySelect('#btn').addEventListener('click', function() {
   jimsFunction();
});
  
  function jimsFunction() {
  var copyText = document.getElementByTagName('input').value;
  copyText.select();
  copyText.setSelectionRange(0, 99999); 
  navigator.clipboard.writeText(copyText.value);
  alert("Copied: " + copyText.value);
  }    

</script>

有人能指出我在这里做错了什么吗?

谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-05-27 04:25:35

  1. 首先从tag获得的是元素。你很想念s

代码语言:javascript
运行
复制
document.getElementByTagName ->document.getElemenstByTagName

  1. 循环元素和添加事件

试一试:

代码语言:javascript
运行
复制
document.getElementById('btn').addEventListener('click', function() {
   jimsFunction(this)
});
let btns = document.getElementsByClassName('btn')
Array.from(btns).forEach(ele => {
  ele.addEventListener('click', function() {
   jimsFunction(this)
  });
})  
function jimsFunction(input) {
  let ele = input.previousElementSibling
  ele.select()
  ele.setSelectionRange(0, 99999)
  navigator.clipboard.writeText(ele.value)
  alert("Copied: " + ele.value)
}
代码语言:javascript
运行
复制
<div>
 <input type="text" value="copy this" readonly>
 <button type=button id='btn'>Copy URL</button>
</div>
<div>
 <input type="text" value="text 1" readonly>
 <button type=button class='btn'>Copy URL</button>
</div>

<div>
 <input type="text" value="text 2 (different)" readonly>
 <button type=button class='btn'>Copy URL</button>
</div>

您是重复的id,应该更改为class

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72400009

复制
相关文章

相似问题

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