使用javascript将文本附加到textarea

Eme*_*n F 35 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>
Run Code Online (Sandbox Code Playgroud)

由于列表实际上非常长,因此效率非常低.添加的文本正是我在HTML上看到的值,所以没有必要输入两次吧?

有没有更好的方法?

the*_*tem 55

通过指定使用事件委托onclick给<ol>.然后传递event对象作为参数,并使用它,从单击的元素中获取文本.

function addText(event) {
    var targ = event.target || event.srcElement;
    document.getElementById("alltext").value += targ.textContent || targ.innerText;
}
Run Code Online (Sandbox Code Playgroud)

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


小智 6

试试看:

<!DOCTYPE html>
<html>
<head>
    <title>List Test</title>
    <style>
        li:hover {
            cursor: hand; cursor: pointer;
        }
    </style>
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
    <script>
        $(document).ready(function(){
            $("li").click(function(){
                $('#alltext').append($(this).text());
            });
        });
    </script>
</head>
<body>

    <h2>List items</h2>
    <ol>
        <li>Hello</li>
        <li>World</li>
        <li>Earthlings</li>
    </ol>
    <form>
        <textarea id="alltext"></textarea>
    </form>

</body>
</html>
Run Code Online (Sandbox Code Playgroud)

  • 使用jQuery来完成这项小任务将是巨大的杀伤力。 (3认同)
  • 谢谢卡尔,但我不想使用jquery..无论如何感谢您的时间! (2认同)