基本上我正在使用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的内容?
答案 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>
答案 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() { ...