javascript - 如何用索引替换div中的字符串

标签 javascript jquery

有没有办法替换 contenteditable 属性设置为 true 的 div 中的字符串?
例如:

<div id="editableDiv" contenteditable="true">
    the quick brown fox jumps over a lazy dog.
</div>

该函数必须执行以下操作:

Scenario 1: start index : 0, end index : 2 and replace string : *why*  
Result : why quick brown fox jumps over a lazy dog.  

Scenario 2: start index : 10, end index : 14 and replace string : *red*  
Result : the quick red fox jumps over a lazy dog.  

下面是我用来获取字符位置的函数:

function getCaretCharOffset() {
    var element = document.getElementById("editableDiv");
    var caretOffset = 0;
    if (typeof window.getSelection != "undefined") {
        var range = window.getSelection().getRangeAt(0);
        var preCaretRange = range.cloneRange();
        preCaretRange.selectNodeContents(element);
        preCaretRange.setEnd(range.endContainer, range.endOffset);
        caretOffset = preCaretRange.toString().length;
    }
    else if (typeof document.selection != "undefined" && document.selection.type != "Control")
    {
        var textRange = document.selection.createRange();
        var preCaretTextRange = document.body.createTextRange();
        preCaretTextRange.moveToElementText(element);
        preCaretTextRange.setEndPoint("EndToEnd", textRange);
        caretOffset = preCaretTextRange.text.length;
    }
    console.log(caretOffset);
    return caretOffset;
}

这是工作 jsFiddle

最佳答案

<p id="demo">Click the button to extract characters from the string.</p>

<button onclick="myFunction()">Try it</button>

<script>
function myFunction()
{
var str = "Hello world!";
var res = str.substring(1,4);
document.getElementById("demo").innerHTML=res;
}
</script>

关于javascript - 如何用索引替换div中的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20779618/

相关文章:

javascript - 从 iframe 重定向到新窗口

javascript - 单击时可调整大小的侧边导航展开

javascript - Webpack,导入 SVG 的完整源代码而不是路径

javascript - 如何在背景附件 :fixed applied?(视差效果)时阻止 Bootstrap 4 slider 图像在幻灯片上移动位置

javascript - 如何使 wordpress 管理菜单默认折叠?

jquery - 将 Logo /页眉始终保持在页面顶部

jquery - JqG​​rid:设置 "No Rows Selected"对话框的位置

javascript - 窗口.URL || window.webkitURL 不适用于 Safari 浏览器版本 5 之前的版本

javascript - XMLHttpRequest:网络错误 0x2f78,由于 IE 中的错误 00002f78 和 Chrome 中的 net::ERR_UNEXPECTED,无法完成操作

javascript - jQuery:对 $.each 的结果进行排序