-1

基本上我正在使用 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]”放入文本区域。问题是我需要它以某种方式是动态的,所以如果有意义的话,我不必在每条评论上方复制该代码?所以代替这个:

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

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

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

4

2 回答 2

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>

你可以看到它在这里工作

于 2013-01-17T19:53:31.343 回答
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() { ...
于 2013-01-17T20:03:05.510 回答