javascript - 使用javascript将文本附加到textarea

标签 javascript

如何将文本列表附加到文本区域?

<textarea id="alltext"></textarea>

<ol>
    <li onclick="addText(Hello')">Hello</li>
    <li onclick="addText(World')">World</li>
    <li onclick="addText(Earthlings')">Earthlings</li>
</ol>

<script>
    var Alltext = "";
    function addText(text) {
        Alltext += text
    }
document.getElementById("alltext").value = Alltext;
</script>

这是非常低效的,因为列表实际上很长。添加的文本正是我在 HTML 中看到的值,因此无需输入两次,对吗?

有没有更好的方法?

最佳答案

通过分配 onclick 使用事件委托(delegate)到 <ol> .然后通过 event对象作为参数,并使用它从单击的元素中获取文本。

function addText(event) {
    var targ = event.target || event.srcElement;
    document.getElementById("alltext").value += targ.textContent || targ.innerText;
}
<textarea id="alltext"></textarea>

<ol onclick="addText(event)">
  <li>Hello</li>
  <li>World</li>
  <li>Earthlings</li>
</ol>

请注意,这种传递 event 的方法对象适用于较旧的 IE 以及符合 W3 的系统。

关于javascript - 使用javascript将文本附加到textarea,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14444938/

相关文章:

javascript - 更改 AudioContext 的采样率(getUserMedia)

javascript - 如何将输入字段恢复为其默认行为?

javascript - Angular 8 - 如何通过类名获取最接近的父级?

javascript - 如何使用 jQuery 调用某个数组中的每个方法

javascript - 如何使用 Python 搜索文件中的 JavaScript 变量?

javascript - 在 JSP 页面中调用 JavaScript 函数

javascript - 如何添加自定义 css3 动画以及悬停时的过渡?

javascript - AngularJS 分成多个文件 - 只有最后一个有效

javascript - JQuery 调整大小仅在全屏启动时有效

javascript - CRM 2013 查找中的 addCustomView