如何知道选择范围内是否存在链接元素

2023-11-27

在 Javascript 中,我想确定一个元素是否A元素,存在于给定范围/文本范围内。目的是确定用户当前的选择是否包含链接。我正在构建一个富文本编辑器控件。

range 对象具有 commonAncestorContainer (W3C) 或parentElement() (Microsoft) 方法,该方法返回范围中所有元素的最接近的公共祖先。然而,在这个元素内部寻找A元素将不起作用,因为这个共同祖先还可能包含不在范围内的元素,因为范围可以通过父级开始或结束。

你将如何实现这一目标?


Selection.containsNode 怎么样?https://developer.mozilla.org/en/DOM/Selection/containsNode

就像是:

var selection = window.getSelection();
var range = selection.getRangeAt(0);
var result = $('a', range.commonAncestorContainer).filter(function() {
  return selection.containsNode(this);
});
console.log(result);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何知道选择范围内是否存在链接元素 的相关文章

  • Google 饼图未显示所有数据行

    我正在尝试绘制人口与国家名称的关系图 我发现 Google 可视化库仅渲染前几个 实际上数字似乎是随机的 具体取决于我使用的数据 有时添加 其他 条目 但它没有t 实际上具有其余条目的值 Example 1 With all countri
  • 通知用户消息仍在输入中

    我正在使用 Laravel 5 6 7 Socket IO 和 vue js 我没有使用 Pusher 和 redis 下面是我的代码 用于向与我一对一聊天的用户发送消息 var url http localhost 6001 apps M
  • 如何获取 RxJSSubject 或 Observable 的当前值?

    我有 Angular 2 服务 import Storage from storage import Injectable from angular2 core import Subject from rxjs Subject Inject
  • 在 asp.net vb 中通过第一个下拉列表值填充第二个下拉列表

    我在使用 asp net vb 时遇到了一些问题 我想做的是有2个下拉框 第一个下拉菜单将有 1 2 3 例如 第二个下拉菜单将有 A 乙 C 默认情况下 但是 如果选择 1 我希望第二个下拉菜单自动选择 c 我不知道 JavaScript
  • 使用 NodeJS 让 Discord 机器人发送带有消息的图片

    我有几张照片 全部在 imgur 上 带有直接图像链接 格式 https i imgur com XXXXXX jpg https i imgur com XXXXXX jpg 以及用 NodeJS 制作的 Discord 机器人 我发送这
  • JavaScript 变量赋值与 OR 对比 if 检查[重复]

    这个问题在这里已经有答案了 在 JavaScript 中 我最近意识到你可以使用 OR 赋值的逻辑运算符 我想知道这是否被认为是不好的做法 特别是 我有一些具有可选数组输入的函数 如果输入是null or undefined我应该将它设置为
  • 从未定义解构时避免错误

    可以说我有这个代码 const x y point Babel 会将其变成 var point point x point x y point y 这很好 但是如果点未定义怎么办 现在我得到一个错误 Cannot read property
  • 在 JavaScript 中比较表单中的两个数字

    当我尝试比较不同的数字时 数字发生变化 但文本部分保持不变 这只发生在较大 较小的情况下 而不会发生在 NaN 或相等的情况下 这是我的代码 function check var a document getElementById a va
  • Telegram 授权无默认按钮

    使用 Telegram 第 3 方授权的唯一有记录的方法是使用其提供的脚本https core telegram org widgets login https core telegram org widgets login 这个脚本 正如
  • Bing.com 如何创建放大的缩略图?

    当我使用 Bing com 搜索图像时 我发现它们的图像经过精心裁剪和排序 当您将鼠标放在图像上时 会弹出另一个窗口 其中显示放大的图像 我想在我的程序中做同样的事情 我检查了他们页面的源代码 他们正在使用 javascript 但我仍然不
  • jQuery Blur() 在 Chrome 上不起作用

    我在 MacOSX 上运行这个http jsfiddle net q84wv http jsfiddle net q84wv on Chrome最新版本 它不会工作 在 Firefox 上运行时它工作得很好 有什么线索吗 假设您想要aler
  • Web SQL 数据库 + Javascript 循环

    我正在尝试解决这个问题 但我自己似乎无法解决 我正在使用 Web SQL DB 但无法让循环正常使用它 I use for var i 0 i lt numberofArticles 1 i db transaction function
  • 将 NPM 包客户端与 nuxt 结合使用

    我对 nuxt 和 javascript 非常陌生 我正在尝试弄清楚如何在客户端使用我的应用程序的依赖项 我将它们列在我的 nuxt config js 中并使用 npm 安装 我也有一个文件 plugins导入它们的目录 不确定这是否好
  • 将 JavaScript 引擎嵌入到 .NET 中 [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 只是想知道是否有人尝试过将任何 js 引擎嵌入并实际集成到 net 环境中 我可以找到并实际使用 经过L
  • 使用 JavaScript 的计时器

    我想使用java脚本实现计时器 我想随着间隔的变化而减少计时器 Example假设我的计时器从 500 开始 我想要根据级别减少计时器 例如1 一级定时器应减1 且递减速度应较慢 2 2级定时器应递减2 递减速度应为中等3 3级定时器应减3
  • 使用Promise而不拒绝它会导致内存泄漏吗? [复制]

    这个问题在这里已经有答案了 代码如下 function test value return new Promise function fulfill reject try fulfill true catch e throw e 我担心的是
  • 使用 jQuery Tablesorter 操作后如何恢复当前页面?

    我正在使用 tablesorter 但无法找到有关插件 tablesorter 寻呼机的任何文档 问题是我有一个显示一些数据的表 并且在每一行中都有一个删除链接 该链接附加了要删除的元素的唯一标识符 显然 是否可以保存我正在删除的页面 然后
  • 使用 React React-router 登录后重定向到主页,并且 usenavigate 不起作用?

    我希望用户在成功登录后重定向到主页 我将用户登录的 api 请求的数据存储在一个名为 currentUser 的变量中 因此如果 currentUser 为 true 它应该重定向到主页 这就是我处理登录请求的方式 export const
  • 如何在 JavaScript 中获取浮点数的小数位?

    我想要的是与 Number prototype toPrecision 几乎相反的 这意味着当我有数字时 它有多少位小数 例如 12 3456 getDecimals 4 对于任何想知道如何更快地完成此操作 无需转换为字符串 的人 这里有一
  • 获取淘汰赛中被点击元素的索引

    获取无序列表中单击元素的索引的最佳方法是什么 让我举个例子 假设我有以下 HTML 代码 ul li p p li ul 现在我有以下 javascript 代码来获取索引 self itemClicked function data it

随机推荐

  • 使用 lambda 参数重写 Coq

    我们有一个函数可以将元素插入到列表的特定索引中 Fixpoint inject into A x A l list A n nat option list A match n l with 0 gt Some x l S k gt None
  • 如何在正则表达式中匹配 12 小时时间 hh:mm?

    如何在正则表达式中匹配 12 小时时间 换句话说 匹配 12 30 但不匹配 14 74 谢谢 这应该有效 1 9 1 012 0 5 0 9
  • 如果我不告诉 C++ 中要抛出什么类型的对象,则抛出什么 throw 语句?

    由于没有显式抛出任何对象 以下代码异常终止 下面代码中的 throw 语句抛出了什么 int main try cout lt lt try throw catch cout lt lt catch return 0 throw不带参数只能
  • Bootstrap 轮播中的文本垂直居中

    我在 Bootstrap 4 中创建文本水平和垂直居中的轮播时遇到问题 我已经创建了bootply使用轮播 但文本位于左上角而不是屏幕中间 div class carousel slide div class carousel inner
  • RESTEasy 返回的集合中的根元素名称

    我在 JBoss AS 6 中通过 RestEasy 使用 JAX RS 当我的 JAX RS 资源返回项目集合 例如通过列表 时 RESTEasy 始终使用名称collection作为根元素 E g
  • 在一个文件中引用 typescript 定义,而不是所有 JS 文件?

    我正在 Visual Studio Code 中开发 Node JS Express 项目 并且想知道是否有一种方法可以在一个全局位置引用 TypeScript 定义 而不必在每个 JS 文件中重新引用定义 我看到 VSCode 支持 ts
  • 检索存档消息时未实现该功能

    我在用Openfire 3 8 2并安装了监控插件并启用了一对一聊天的存档 现在我可以在服务器端查看存档聊天 但是当我通过一个节时 我得到feature not implemented Request
  • 向数据框的“类”提供向量

    您知道如何向数据框提供名称向量来更改数据框的列或行名称 是否有类似的方法来提供名称向量来更改数据框中每列的类 当您使用 colClasses 通过 read table 读取数据帧时 可以执行此操作 如果数据框是在 R 内部创建的呢 DF
  • 使用 PhoneGap 覆盖 Android 后退按钮行为仅适用于第一页

    我正在使用 PhoneGap 1 5 0 jQuery 1 7 1 和 jQuery mobile 1 0 1 并尝试按照所述覆盖 Android 中的后退按钮here or here document addEventListener d
  • 如何使用QTextBlock?

    我对 C 和 Qt 完全陌生 我想填充一个QTextEdit对象与QTextBlocks 我怎么做 e g 如果我有一句话 鱼来了 我如何将每个单词放入自己的单词中QTextBlock并将该块添加到QTextEdit 或者我误解了如何QTe
  • 使用 GSON 的 Java 克隆对象

    我必须多次克隆一个对象 我的对象是不可序列化的 我正在使用以下功能 SuppressWarnings unchecked public static T cloneThroughJson T t Gson gson new Gson Str
  • htaccess 如果不是子域则添加 www,子域的则删除 www

    我正在尝试做到这一点 可能例子是最好的 所以 domain com gt www domain com www domain com gt www domain com subdomain domain com gt subdomain d
  • 学习多种语言[关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心以获得指导 一旦你学会了一种语言 学习
  • Jogl着色器编程

    我刚刚开始着色器编程 GLSL 并使用 RenderMonkey 创建了一些 现在我想在我的 java 代码中使用这个着色器 有没有一些简单的例子来说明我如何做到这一点 我找到了一个非常简单的例子 int v gl glCreateShad
  • 两个外键,如何用laravel eloquent进行映射

    我在 MySQL 中有两个表 第一个表称为用户 第二个表称为游戏 表结构如下 users id 主要 email password 真正的名字 games id 主要 user one id 国外 用户得分 user two id 国外 用
  • Swift 有 String 的修剪方法吗?

    Swift 有 String 的修剪方法吗 例如 let result abc trim result abc 以下是删除开头和结尾的所有空格的方法String 测试示例斯威夫特2 0 let myString t t Let s trim
  • 如何在 Rails 中的关联模型上配置 pg_search 多重搜索?

    我正在将 pg search 添加到 Rails 应用程序中 我不完全理解配置 希望能在正确的方向上轻轻推动 首先 我已经或多或少地在我的应用程序上设置并运行了一个多模型网站 但我想将其扩展为搜索相关模型 例如 我有制造商 汽车 模型类 目
  • UITableView 的一部分周围的阴影

    我有一个UITableView有 4 个部分 现在我想向表格的特定部分添加阴影效果 而不是整个表格 我怎样才能完成这个任务 您将必须更改部分页眉和页脚以及该部分的所有单元格 Use tableView viewForFooterInSect
  • Internet Explorer 8 不传递 ajax 请求的会话 cookie

    我有简单的 php 应用程序 它适用于除 IE8 beta 2 之外的所有浏览器 当我尝试使用 Ajax 调用 jQuery post 方法 更新表字段时出现问题 使用 IE8 调试器 我发现 IE8 不发送会话 cookie 因此 php
  • 如何知道选择范围内是否存在链接元素

    在 Javascript 中 我想确定一个元素是否A元素 存在于给定范围 文本范围内 目的是确定用户当前的选择是否包含链接 我正在构建一个富文本编辑器控件 range 对象具有 commonAncestorContainer W3C 或pa