javascript - 如何检测文本框中某些文本的位置?

标签 javascript jquery html css

在 Youtrack 应用程序中,我发现他们在输入元素旁边使用了一些

  • 标记来显示下划线,但我不知道他们如何检测输入元素内文本的位置。请在此处查看图片 enter image description here

  • 最佳答案

    在 Firefox 中,您可以使用 textarea.selectionStart 检索插入符位置。

    这是一种在光标所在的位置插入虚拟字符并获取文本位置而不是光标位置的方法。

    var area = document.getElementById("textareaID"); // the textarea 
    area.focus(); // assign focus
    var c = "{{#$%&{}"; // dummy string
    var sel = document.selection.createRange();
    var sel2 = sel.duplicate();
    sel2 .moveToElementText(area);
    sel.text = c;
    pos = (sel2.text.indexOf(c));
    

    或者这是一个检查是否支持selectionStart的跨浏览器方法

    var pos = 0;
    
    if("selectionStart" in el) {
        pos = el.selectionStart;
    } else if("selection" in document) {
        el.focus();
        var Sel = document.selection.createRange();
        var SelLength = document.selection.createRange().text.length;
        Sel.moveStart("character", -el.value.length);
        pos = Sel.text.length - SelLength;
    }
    return pos;
    

    还有其他 jQuery 插件可以操作插入符号。 http://plugins.jquery.com/caret/


    这是我遇到的几个 jsFiddle 演示

    关于javascript - 如何检测文本框中某些文本的位置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25990297/

    相关文章:

    javascript - 调整 div 垂直或水平大小

    javascript - “获取”来自 xml 的数据以通过 javascript 输入到 html(初学者)

    javascript - 从 JQuery Ajax 处理 FileResult

    javascript - 光滑的 slider : align slide width to Bootstrap container width

    css - Bootstrap 4滚动条在2个div上并排固定和流动宽度

    HTML/CSS - 刷新 Div 对齐?

    javascript - 如何在一个函数中从 2 个 api 获取数据并在对话框流卡履行中显示

    JavaScript 对象设计

    javascript - .files 在 JavaScript 中实际上做了什么?

    javascript - 如何在每次动画迭代计数后更改元素的大小?