0

我正在尝试做类似的事情。当按下 CTRL+b 时,它应该在所选文本周围添加 [b] 和 [/b]。我可以使用此 Javascript 代码获取选定的文本:获取突出显示/选定的文本

但是......当我尝试这样的事情时:

$(document).ready(function (){
    $('#message').on('keydown',function(e) {
        key = e.which;
        if(e.which == 39){
            str = getSelectionText();
            $("#message").replace(str,"[b]"+str+"[/b]");
        }
    })
});

它行不通。它会说“Object [object Object] has no method 'replace'”这很奇怪,因为当我执行 alert(str); 它将显示选定的文本。

谁能告诉我为什么?键 39 是右箭头键。

提前致谢

4

1 回答 1

2

这是一个 jQuery 对象,这就是为什么不能.replace工作的原因。您需要添加.val()以获取实际值,然后您还必须设置它:

var value = $("#message").val();
value = value.replace(str,"[b]"+str+"[/b]");
$("#message").val(value);
于 2013-06-26T23:14:50.790 回答