【发布时间】:2017-03-22 02:29:54
【问题描述】:
我目前正在努力将类的 innerHTML 部分复制到另一个 div。问题是我为每个 div 使用相同的类名,但每个 div 都有另一个内容。我想基于 EventListener 来实现,单击的 div 的 innerHTML 被复制到另一个 div。所以我基本上希望如果有人点击 div.emoji 中的表情符号 - 选择相同的表情符号被复制到 div#text 中。使用我当前的 JavaScript 代码,我的 innerHTML 最终是未定义的。我目前正在尝试将每个 div.emoji--select 的每个 innerHTML 保存到一个数组中,然后在我的函数 addEmoji() 中使用它。我非常感谢您的帮助。请仅使用纯 JavaScript。
我的 HTML
<div id="text_wrapper">
<div id="text" contentEditable="true" hidefocus="true"></div>
</div>
<span class="emoji--select" >????</span>
<span class="emoji--select">????</span>
我的 JavaScript
//Select clicked emoji in div.emoji--select
var emojiText = []
var emojiSelect = document.getElementsByClassName('emoji--select')
for (var i = 0; i <= emojiSelect.length; i++) {
emojiText.push(emojiSelect[i].innerHTML)
emojiSelect[i].addEventListener('click', function() {
addEmoji(emojiText[i])
})
}
//Add Emoji to div#text
function addEmoji(emojiSelected) {
var text = document.getElementById('text')
text.append(emojiSelected)
}
【问题讨论】:
-
你的分号在哪里?这可能会导致问题,但也可能只是复制代码时的格式问题。
-
尝试使用
text.text(text.text() + emojiSelected)代替.append (在语法上大笑。也许考虑重命名文本变量。) -
您好 zbkrt,您看到我的回答了吗?我认为这非常干净和简单,因为没有使用 IIFE(立即调用函数表达式)。
标签: javascript html