首页 > 解决方案 > 在 contenteditable div 中的 carret 位置之前或之后返回单词的范围对象

问题描述

经过研究,我遇到了@Tim Down 的几个答案,但仍然没有解渴。我想要的是删除包含在 contenteditable div 中的 carret 之前或之后的单词的范围内容。假设 | 代表carret位置。

示例:@TimDown 是一个#GoodJavascriptProgrammer| 和 ....

如果我单击删除按钮,我应该删除包含# 符号的单词#GoodJavascriptProgrammer 并将光标设置回其位置。看我的小提琴删除carret之前的最后一个字符串

function delete_last_word_at_carret(el){
if(window.getSelection){//Webkits and Firefox code
    var sel=document.getSelection();
if(sel.getRangeAt && sel.rangeCount){
        range=sel.getRangeAt(0);//assume this is required range
        range.deleteContents();
  //the word #GoodJavascriptProgrammer should be deleted
  //and cursor set back to the right position
   set_cursor();
    }
 }
 else if(document.selection){//IE code
 //help with code here
 }
}
function set_cursor(){
//return cursor
}
//click the delete button
$('.delete_bt').click(function(){
var el=document.getElementById('editable_div');
delete_last_word_at_carret(el);
});

标签: javascriptjquerycontenteditable

解决方案


推荐阅读