获取嵌套 html 标签内的字符偏移量

2023-12-01

我有类似于此的 HTML 代码:

<pre>
    words words words
    words <span> words mystery words</span>
    words words words
</pre>

我想获得“神秘”相对于的字符偏移量pre使用 Javascript(本机或 MooTools)标记。我可以得到它关于span使用anchorNode属性标记,但我找不到一种方法来获取它pre tag.


你可以使用DOM Range去做这个:

function getCharOffsetRelativeTo(container, node, offset) {
    var range = document.createRange();
    range.selectNodeContents(container);
    range.setEnd(node, offset);
    return range.toString().length;
}

Example:

var sel = window.getSelection();
var pre = document.getElementById("your_pre_id");
var offset = getCharOffsetRelativeTo(pre, sel.anchorNode, sel.anchorOffset);

Caveats:

  • 这适用于除 IE
  • 这个函数会计算里面的字符数<script> or <style>标签和不可见元素(被CSS隐藏display: none, 例如)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

获取嵌套 html 标签内的字符偏移量 的相关文章

随机推荐

  • 如何使用 Gremlin 选择可选的图形结构?

    我正在使用 Gremlin 查询存储在 TitanDB 中的图表 该图包含具有属性 例如 描述 的用户顶点 以及表示用户之间关系的边 我想使用 Gremlin 来获取 1 按属性的用户以及 2 与其他用户的可能关系 例如 我可以使用以下查询
  • 如何将 taglibs JSTL/core 与 WEB-INF 文件夹中的 JAR 一起使用

    目前 我已经使用 JSP 页面顶部的以下标记设置了标记库并正常工作 在 Maven 中我有依赖项
  • Azure SQL 数据库在本地运行时可以工作,但在发布到 Azure 时则无法工作

    这几天来一直困扰着我 但我就是无法解决 我按照在线教程向您展示了如何使用实体框架中的模型优先方法连接和使用 Azure 数据库 这样 您必须设置数据库迁移 以便在将网站发布到 Azure 时更新 Azure 数据库 我已经在 Azure 上
  • 如何使直方图中的标签响应动态用户输入

    我有以下工作代码 它获取输入数据并根据阈值显示直方图 如果您运行下面的代码 则该代码可以正常工作 当您拖动滑动条时 直方图会发生变化 然而标签26 GENES当我们拖动阈值时不会改变 从 1 5 到 2 我预计值会更改为30 GENES 这
  • Dart 中的异步编程

    我与java有关如何执行线程 异步 我使用 new Thread target start 其中 target 是 Runnable 作为在 java 中执行线程的一种方法 新的并发 api 有替代方案 但我们知道在特定调用时会创建新线程并
  • 将 UI 定位到鼠标位置(使工具提示面板跟随光标)

    我制作了一个跟随光标的工具提示面板 void Update this transform position Input mousePosition 在更新功能中 The panel lags behind moving to cursor
  • 仅当重定向到管道或文件时,awk 才没有输出[重复]

    这个问题在这里已经有答案了 我有一个相当简单的脚本 在向每一行添加时间戳后从 tty 打印内容 它在命令行上输出得很好 但是使用以下命令重定向输出 gt 不起作用 为什么不 这是脚本 bin bash awk print strftime
  • Express 中绝对路径和相对路径的困难

    我在 Express 应用程序中有一个 API 路线 如下所示 app get username bookmark function req res do stuff 正如预期的那样 该路由解析为 GET username bookmark
  • C# 列表分组并赋值

    我有一份订单清单 此列表包含同一商品的多个订单 请参阅下表 然后我想为每个相同的项目 即 ABC 分配相同的块 ID 因此 ABC 的块 ID 为 1 每个 GHJ 的块 ID 为 2 等等 最好的方法是什么 目前 我按订单 ID 对列表进
  • 从本地系统获取当前位置区域[关闭]

    Closed 这个问题需要细节或清晰度 目前不接受答案 我需要获取国家 城市 例如 America New York 从我的本地系统使用 time 包中的 LoadLocation value string 提供给 api 如何在不使用任何
  • 如何使用imageEdgeInsets更改UIButton中图像的tintColor?

    我的 Objective C 应用程序中有一个 UIButton 我的按钮经过修改 添加了文本和图像 例如 void centerButtonAndImageWithSpacing CGFloat spacing CGFloat inset
  • ISBN -> bookdata 查找填写数据库

    好的 我想为一个小型图书馆建立数据库 我对数据库的经验有限 并且没有从网络服务器查询的经验 我想要检索标题 出版商 也许是作者 描述等信息 我能想到的最简单的方法是通过 ISBN 查找它们 我以前接触过 isbndb com 但访问它的 A
  • 为什么是行家?有什么好处? [关闭]

    Closed 这个问题是基于意见的 目前不接受答案 与 ant 相比 使用 Maven 的主要好处是什么 它似乎更像是一种烦恼 而不是一个有用的工具 我使用 maven 2 普通 Eclipse Java EE 无 m2eclipse 和
  • ClickOnce 应用程序安装 - 安全警告

    我有一个部署在网站上的 clickonce 应用程序 例如 http example com 用户将从该网站下载我发布的应用程序的 setup exe 文件 并将该应用程序安装在他们的计算机上 我已使用 GoDaddy 为我公司颁发的证书签
  • aws beanstalk nodejs:如何覆盖 nginx 的 60 秒超时

    我想增加AWS弹性beanstalk中nodejs环境中nginx的默认超时 我正在遵循本指南 https medium com swlh using ebextensions to extend nginx default configu
  • 控制R中ggplot2中多个geom_line的颜色

    我想绘制 3 条回归线 一条对应 tau 的每个值 每条都有其颜色 如数据集中指定的那样 互联网上说您在一般情节美学中提供了颜色变量 http ggplot yhathq com docs geom line html 但这似乎不起作用 任
  • IServiceCollection 不包含 AddAzureClients 的定义

    我正在尝试添加 blob 服务客户端以进行依赖项注入 我正在使用最新版本Microsoft Extensions Azure 但是我的服务集合不包含扩展方法AddAzureClients 服务集合的类型为Microsoft Extensio
  • 库存数量宏 excel

    我正在尝试让 Excel 作为库存扫描阅读器 我在扫描时遇到问题 因为当我扫描时它会不断添加到列 A 即使它是重复的 我希望它能够识别扫描的项目与上次相同并添加到列数量 如果有人可以帮助我如何编写代码 那就太好了 图片 它不让我放一张 但
  • 从另一个页面获取ElementById

    我正在尝试获得一个div从一个网页 URL 到另一个网页并使用纯文本显示getElementById不使用 AJAX 或 jQuery 因为我将在 FitNesse 中实现它 有没有办法传递URL 您可以在隐藏的 iframe 中加载 UR
  • 获取嵌套 html 标签内的字符偏移量

    我有类似于此的 HTML 代码 pre words words words words span words mystery words span words words words pre 我想获得 神秘 相对于的字符偏移量pre使用 J