jquery - 获取字符在特定索引处的位置

标签 jquery html css

我想找出一个字符在 div 中的位置。

例如

<div>This is a very long multi-line text that overflows and wraps<div>

我想在位置 24(即“-”)找到字符的绝对 x 和 y 位置。这可能吗?

最佳答案

这是一种在纯 J​​avaScript 中获取文本偏移位置的方法,无需使用元素包装文本:

var characters = document.querySelector('.characters');
var charactersText = characters.textContent;
var charAtIndex = 25;
var offsetPosition;

characters.textContent = '';
for (var i = 0; i < charactersText.length; i++) {
    var textNode = document.createTextNode(charactersText[i]);
    characters.appendChild(textNode);
    if (i === charAtIndex) {
        var range = document.createRange();
        range.selectNodeContents(textNode);
        var rects = range.getClientRects();
        offsetPosition = {
            left: rects[0].left,
            top: rects[0].top
        };
    }
}

alert(JSON.stringify(offsetPosition, null, 2));
<div class="characters">This is a very long multi-line text that overflows and wraps</div>

关于jquery - 获取字符在特定索引处的位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29186964/

相关文章:

css - Chrome 的全屏 Canvas ?

javascript - IE11 中的 onclick 功能不起作用

css - 编译bootstrap compass文件时如何更改路径

javascript - 使用 .onresize 控制响应式视频播放器上的文本

javascript - 尝试通过 CSS 指针事件禁用点击

javascript - 间隔并不总是被清除

javascript - JQuery 键盘 css 将颜色分配给具有特定类的按钮(键)失败

javascript - 使用 Jquery 无法在 Div 中加载 html 页面

javascript - slider 不显示

html - 更改聚焦文本框周围的选择颜色