如何用Javascript替换textarea中的选定文本?

时间:2015-06-24 20:12:17

标签: javascript jquery textarea

我有一个textarea和一个按钮,它将以下文本添加到textarea:

  

" - 列出项目"

如果在textarea中选择了一些文本,我希望添加的文本显示为:

  

" - (选定文字)"

所以,解决这个问题的方法是使用if函数来查看textarea中是否有文本被选中,然后如果是,则接收突出显示的文本,以便它可以附加到文本中textarea。

可以使用document.getElementById(textarea).value += string简单地完成附加部分,但我不确定是否选中了textarea中的某些文本并接收它。

1 个答案:

答案 0 :(得分:1)

对于非IE浏览器,您可以使用textarea对象的 selectionStart SelectionEnd 属性执行此类操作:

function createListElement() {
    if(document.activeElement === textarea) {
        if(typeof textarea.selectionStart == 'number' && typeof textarea.selectionEnd == 'number') {
            // All browsers except IE
            var start = textarea.selectionStart;
            var end = textarea.selectionEnd;

            var selectedText = textarea.value.slice(start, end);
            var before = textarea.value.slice(0, start);
            var after = textarea.value.slice(end);

            var text = before + '- ' + selectedText + after;
            textarea.value = text;
       }
   }
}

但是这样一个微不足道的操作对IE来说变得更加困难,你可以找到更多here

我希望这会对你有所帮助:)。