您好我正在尝试实施针对此问题提出的解决方案: Insert text into textarea with jQuery
但是不要紧张。
在将一些虚拟文本添加到textarea元素中时,此平面函数可以正常工作:
function add_to() {
$('#ad_textarea').val($('#ad_textarea').val()+'test');
}
但是,当我尝试将此函数连接到变量时,它会断开:
function add_to(word) {
$('#ad_textarea').val($('#ad_textarea').val()+word);
}
从这行代码中调用时:
<?php foreach ($words as $word) {
echo "<li class='$word[0]'><a href='#' onclick='add_to('$word');'>$word</a></li>";
}
?>
我查看了输出的代码,看起来很干净:
<li class='a'><a href='#' onclick='add_to('aardvark');'>aardvark</a></li>
我最终试图让他们在文本区打印出来。谁能发现我的滑倒?
TIA
答案 0 :(得分:5)
如果您确定它不会在字符串本身中有任何内容,则需要转义该值或更改引号,如下所示:
onclick='add_to("$word");'
但是,最好使用不显眼的脚本并同时消除此问题,如下所示:
<li class='a'><a href='#' class='word'>aardvark</a></li>
然后使用这样的脚本:
$(function() {
$("a.word").click(function() {
$('#ad_textarea').val($('#ad_textarea').val()+$(this).text());
});
});
或者使用.val()
函数:
$(function() {
$("a.word").click(function() {
var t = $(this).text();
$('#ad_textarea').val(function(i, v) { return v + t; });
});
});
答案 1 :(得分:2)
你的“onclick”中有未转义的单引号。使用双引号或逃避它们。或者您甚至可以在外面使用双引号,单引号内。
答案 2 :(得分:0)
更改
"<li class='$word[0]'><a href='#' onclick='add_to('$word');'>$word</a></li>";
到
"<li class='$word[0]'><a href='#' onclick=\"add_to('$word');\">$word</a></li>";
并检查可能有效
实际上
onclick='add_to('aardvark');'
应该是
onclick="add_to('aardvark');"