Javascript 将具有相同id的div中的文本复制到input onclick

Javascript 将具有相同id的div中的文本复制到input onclick,javascript,Javascript,所以今天我决定学习javascript并尝试一些看似简单的东西。但我被困住了,不明白为什么这不起作用 我试图将文本从具有相同ID的divs onclick复制到输入中,但它总是将第一个divs文本复制到输入中,而不是我单击的div 有没有办法解决这个问题 函数copyToInput(elementId){ var getText=document.getElementById(elementId).innerText; var chatHudInput=document.getElements

所以今天我决定学习javascript并尝试一些看似简单的东西。但我被困住了,不明白为什么这不起作用

我试图将文本从具有相同ID的divs onclick复制到输入中,但它总是将第一个divs文本复制到输入中,而不是我单击的div

有没有办法解决这个问题

函数copyToInput(elementId){
var getText=document.getElementById(elementId).innerText;
var chatHudInput=document.getElementsByClassName('hud-chat-input')[0];
chatHudInput.value=getText;
}
这里有一些文本

这里有更多的文字
这里有更多的文字

两个div不能共享一个id。但是,您可以共享class',但id是唯一的标识符

id属性为HTML元素指定一个唯一的id(该值在HTML文档中必须是唯一的)


切勿对元素使用相同的id而应使用相同的类 . 您可以在onclick函数中传递整个元素,并在函数中获取其文本

函数copyToInput(elementId){
var chatHudInput=document.getElementsByClassName('hud-chat-input')[0];
chatHudInput.value=elementId.innerText;
}
这里有一些文本

这里有更多的文字
这里有更多的文字
这里有一些文本

这里有更多的文字
这里有更多的文字
ID
必须是
唯一的
,在您的情况下,
ID
不是唯一的,所以当
文档时。getElementById(elementId)
请首先查看匹配
消息的
ID
,获取它并且不继续搜索(因此始终获取第一个div)

您的代码不需要
ID
,请使用
this
this
指点击它的
div

函数copyToInput(elementId){
var chatHudInput=document.getElementsByClassName('hud-chat-input')[0];
chatHudInput.value=elementId.innerText;
}
此处的一些文本
这里有更多的文字
这里有更多的文字

使用以下代码。所有元素都必须具有唯一的ID。在您的代码中,它使用第一个ID的唯一原因是它使用的第一个ID(因为您只能有一个ID,而代码假定您只有一个ID)。只需给3个元素不同的ID

函数copyToInput(elementId){
var getText=document.getElementById(elementId).innerText;
var chatHudInput=document.getElementsByClassName('hud-chat-input')[0];
chatHudInput.value=getText;
}
这里有一些文本

这里有更多的文字
这里有更多的文字

ID
必须是唯一的,或者使用类,您定义了两次类。没有注意到。修好了
Try This:

    function copyToInput(elementId) {
  var getText = document.getElementById(elementId).innerText;
  var chatHudInput = document.getElementsByClassName('hud-chat-input')[0];
  chatHudInput.value = getText;
}