javascript - 将文本从具有相同 id 的 div 复制到输入 onclick

标签 javascript

所以今天我决定学习 javascript 并尝试一些看似简单的东西。 。但我陷入困境,无法弄清楚为什么这不起作用。

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

有什么想法可以解决这个问题吗?

function copyToInput(elementId) {
  var getText = document.getElementById(elementId).innerText;
  var chatHudInput = document.getElementsByClassName('hud-chat-input')[0];
  chatHudInput.value = getText;
}
<div class="hud-chat-message" id="message" onclick="copyToInput('message');"> SOME TEXT HERE </div>
<hr>
<div class="hud-chat-message" id="message" onclick="copyToInput('message');"> SOME MORE TEXT HERE </div>
<hr>
<div class="hud-chat-message" id="message" onclick="copyToInput('message');"> EVEN MORE TEXT HERE </div>
<hr>
<input type="text" name="message" class="hud-chat-input" placeholder="Enter your chat message..." maxlength="140">

最佳答案

永远不要对元素使用相同的 id 而是使用相同的类 。您可以在 onclick 函数中传递整个元素并在函数中获取其文本

function copyToInput(elementId) {
  var chatHudInput = document.getElementsByClassName('hud-chat-input')[0];
  chatHudInput.value = elementId.innerText;
}
<div class="hud-chat-message message"  onclick="copyToInput(this);"> SOME TEXT HERE </div>
<hr>
<div class="hud-chat-message message" onclick="copyToInput(this);"> SOME MORE TEXT HERE </div>
<hr>
<div class="hud-chat-message message"  onclick="copyToInput(this);"> EVEN MORE TEXT HERE </div>
<hr>
<input type="text" name="message" class="hud-chat-input" placeholder="Enter your chat message..." maxlength="140">

关于javascript - 将文本从具有相同 id 的 div 复制到输入 onclick,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55057278/

相关文章:

javascript - Stackoverflow 使用 localstorage 进行授权似乎不安全。这是正确的,否则我们如何加强它?

javascript - 我如何让我的谷歌地图指向它应该指向的位置?

javascript - 如何从 JSON 创建动态路由列表?

javascript - knockoutjs 可观察数组

javascript - 使用 jQuery 更改第一个跨度的文本

javascript - Woocommerce REST API : Add meta data to line-item and to the database

javascript 无法工作动态创建的 javascript alink

javascript - 图片旋转背景js跳转到页面顶部

javascript - 文档片段 VS 创建未附加的 div

javascript - 单击时切换图像源