JS:在文本区域问题中添加文本

The*_*pes 0 javascript jquery

嗨,我正在尝试实现在这个问题上提出的解决方案: 使用jQuery将文本插入textarea

但是不要紧张.

将一些虚拟文本添加到textarea元素时,此平面函数可以正常工作:

function add_to() {
        $('#ad_textarea').val($('#ad_textarea').val()+'test');
}
Run Code Online (Sandbox Code Playgroud)

但是,当我尝试将此函数连接到变量时,它会中断:

function add_to(word) {
            $('#ad_textarea').val($('#ad_textarea').val()+word);
    }
Run Code Online (Sandbox Code Playgroud)

从这行代码调用时:

<?php foreach ($words as $word) {
    echo    "<li class='$word[0]'><a href='#' onclick='add_to('$word');'>$word</a></li>";
    } 
    ?>
Run Code Online (Sandbox Code Playgroud)

我查看了输出的代码,看起来很干净:

<li class='a'><a href='#' onclick='add_to('aardvark');'>aardvark</a></li>
Run Code Online (Sandbox Code Playgroud)

我最终试图让他们在文本区打印出来.谁能发现我的滑倒?

TIA

Nic*_*ver 5

您需要转义值,或者如果您确定它在字符串本身中没有任何内容,则更改引号,如下所示:

 onclick='add_to("$word");'
Run Code Online (Sandbox Code Playgroud)

但是,最好使用不显眼的脚本并同时消除此问题,如下所示:

<li class='a'><a href='#' class='word'>aardvark</a></li>
Run Code Online (Sandbox Code Playgroud)

然后使用这样的脚本:

$(function() {
  $("a.word").click(function() {
    $('#ad_textarea').val($('#ad_textarea').val()+$(this).text());
  });
});
Run Code Online (Sandbox Code Playgroud)

或使用.val()功能:

$(function() {
  $("a.word").click(function() {
    var t = $(this).text();
    $('#ad_textarea').val(function(i, v) { return v + t; });
  });
});
Run Code Online (Sandbox Code Playgroud)