使用javascript填充textarea

时间:2013-01-17 19:20:07

标签: javascript jquery

基本上我正在使用SCEditor并想在论坛帖子或文章评论中使用一个名为“引用”的按钮,它从消息中抓取文本并将其粘贴到textarea中,我有这样的代码:

<script type="text/javascript">
jQuery.noConflict(); //disable global $ for jQuery
jQuery(document).ready(function($){
    $(function(){
    $('#quote').click(function() {
        $('textarea').sceditor('instance').insert("[quote=admin]Some text[/quote]");
    });
    });
});
</script>

现在有效,它会将“[quote = admin] some text [/ quote]”放入textarea。问题是我需要以某种方式动态,所以如果有意义的话,我不必在每条评论之上复制代码吗?所以不要这样:

insert("[quote=admin]Some text[/quote]");

该部分会从下面的框中抓取所有文字吗?而不是我手动用帖子中的文字替换引用的位。

所以基本上用点击引用链接替换上面引用的位和不同div的内容?

2 个答案:

答案 0 :(得分:0)

你可以像这个简单的例子一样使用正则表达式

<textarea id="ta" rows="5" cols="20">
  [quote=admin]Some text[/quote]
</textarea>
<br />
<input type="button" value="Click Me" onclick="rep()" />
<br />
<div id="dv" style="width:100px; height:100px; border:black 1px solid;">
  Some div content
</div>

<script type="text/javascript">
  function rep() {
    var tatxt = $("#ta").val();
    var dvtxt = $("#dv").html();
    var newtxt = tatxt.replace(/\[quote\=admin\].*?\[\/quote\]/ig, dvtxt);
    $("#ta").val( newtxt );
  }
</script>

You can see it work here

答案 1 :(得分:0)

这取决于您的条目的结构。让我们假设“quote”按钮和div id =“entry”在嵌套在父级或另一个容器内的同一级别上。

<div id="wholeThing">
    <div id="entry"> ....... </div>
    <!-- other stuff goes here -->
    <input type="button" name="quote" ......>
</div>

然后你可以这样做:

$(this).parent().find("#entry").text();

如果您确切知道内容所在的位置,则可以迭代层次结构中的先前元素。

$(this).prev().prev().text(); // if content container is 2 elements in front 

对于按钮单击处理程序,您可以设置类或使用其名称属性:

$('div input[name="quote"]').click(function() {  // for name attribute
    $('textarea').sceditor('instance').insert("[quote=admin]Some text[/quote]");
});

使用等于所有“引用”按钮的类:

$('.className').click(function(){ ... 

如果它是每个条目中唯一的输入元素:

$('div input').click(function() { ...