删除文本区域中两个位置之间的所有文本

时间:2014-05-22 01:24:32

标签: jquery

我知道如何使用$('textarea').prop('selectionStart') //=> 3$('textarea').prop('selectionEnd') //=> 9检索光标位置。

如何编写一个函数来删除位置3和9之间的文本?

这就是我删除一个字符的方式:

function replace_character(position, characters, a){
    var original_content = $('textarea').val(),
        new_content = original_content.substr(0, position) + characters + original_content.substr(position, original_content.length);

    $('textarea').val(new_content)
};

这可能看起来很冗长,但我正在使用该功能替换具有不同角色的角色,所以它看起来并不臃肿。

无论如何,我应该如何删除两个职位之间的所有文字?

1 个答案:

答案 0 :(得分:0)

使用selectionStart的值的开头作为第一个块,然后在selectionEnd上连接到值的结尾作为第二个块:

function replace_character() {
    var subject = $('textarea'); // should this be a little more specific??
    var original_content = subject.val().trim();
    var new_content = original_content.substr(0, subject.prop('selectionStart')) + original_content.substr(subject.prop('selectionEnd'));
    subject.val(new_content);
}

演示:http://jsfiddle.net/LYLBh/