如何替换 html 文本区域中选定的文本?
mardagz
到 [b]mardagz[\b]
这是我的代码,但不起作用..
function getSelectedText(){
if(window.getSelection){
return window.getSelection().toString();
}
else if(document.getSelection){
return document.getSelection();
}
else if(document.selection){
return document.selection.createRange().text;
}}
function bbrep(start, end){
$("#pPost").val($("#pPost").val().replace(getSelectedText(), start + getSelectedText() + end))};
键
$("#bbbold").click(function(){
bbrep("[b]", "[/b]");
return false;
})
有人对此有想法吗? :)
最佳答案
这是一个完整的测试和工作示例
function getSelectedText() {
var len =$("#pPost").val().length;
var start = $("#pPost")[0].selectionStart;
var end = $("#pPost")[0].selectionEnd;
var sel = $("#pPost").val().substring(start, end);
return sel;
}
function bbrep(start, end){
var tmpVal = getSelectedText();
$("#pPost").val($("#pPost").val().replace(tmpVal, start + tmpVal + end));
}
$("#bbbold").click(function(){
bbrep("[b]", "[/b]");
return false;
})
这是 html 代码片段
<textarea rows="2" cols="20" id="pPost">mardagz
</textarea>
<input type="button" id="bbbold" value="clcikMe" />
这是我刚刚做的一个 jsfiddle 示例 "it works"
<小时/>另一个也考虑索引的jsfiddle,jsfiddle.net/SU7wd/58 <- 也适用于第二个a
关于jquery - 如何在 jQuery 中替换我选择的文本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8405148/