jquery - 如何在 jQuery 中替换我选择的文本?

标签 jquery

如何替换 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/

相关文章:

javascript - $(document).ready(function() {...}) 在插件脚本加载之前运行

javascript - 手动添加浏览器历史记录条目(跨浏览器)

javascript - php到node.js ajax发送没有给出响应

javascript - 较小的 jQuery 插件(以 KB 为单位)是否会比具有相同功能但尺寸较大的相同插件表现更好?

javascript - 如何使用 JavaScript 检测元素重叠(重叠)?

javascript - 检测输入是否有焦点

javascript - 遍历表并将值存储为键/值对

javascript - 查找具有特定数据属性的元素 jQuery

javascript - jquery:在 Chrome 中用未转义的 html 填充文本区域

javascript - 禁用并重置或清空所有输入