javascript - 带格式的 div 搜索表单

标签 javascript jquery

我正在尝试创建一个语法突出显示的搜索字段,其中某些项目在我键入时具有特定的颜色、粗体、下划线等。当我输入时,我希望单词 in 变为粗体。这适用于我当前拥有的内容,但是当键入 in 时,光标会转到 div 的开头,并且您也无法在单词 in 之后键入任何内容。我可以做什么来解决这个问题?你可以看到jsfiddle here .

JavaScript:

$(document).on("keyup", "#q", function(){
    var val = $(this).text();
    val = val.replace(/\sin\s/ig, " <b>in</b> ");
    $(this).html(val);
});

HTML

<div id="q" name="q" class="form-control input-lg" contenteditable="true"></div>

最佳答案

rangy library我能够像这样完成此任务:

$(document).on("keyup", "#q", function(){
    var savedSel = rangy.saveSelection();
    var val = $(this).html();
    val = val.replace(/\sin\s/ig, " <b>in</b> ");
    $(this).html(val);
    rangy.restoreSelection(savedSel);
});

关于javascript - 带格式的 div 搜索表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29197489/

相关文章:

javascript - NodeJS循环遍历字符串并获得准确的输出

jquery - 为什么这里没有选择父级?

jquery - 将 HTMl5 应用程序移动到 ipad 时要注意什么?

javascript - 如何在 node.js 中运行 jQuery

javascript - 如何向 jQuery 函数添加延迟

javascript - 单击 CKEDITOR 时显示 Bootstrap 工具提示

javascript - JS - 停止 DIV 并在位置添加类

javascript - Typescript 到 JavaScript

javascript - jQuery scrollTop() 不起作用并返回零

javascript - 回调函数没有获取到数据