使用 vanilla Javascript 查找具有部分属性的 DOM 元素

2023-12-09

假设我有一个网站,我想使用循环遍历其 DOM 元素的脚本,并指出这些元素的属性包含指定文本的一部分。我成功创建了一个简单的循环,可以找到 DOM 元素的每个所需属性并从中创建数组。现在我想将数组属性值与其所属的 DOM 元素配对,并且还能够找到与数组元素(属性)和 DOM 元素匹配的文本的指定部分。

var getAll = document.getElementsByTagName('*');
var myArray = [];

for (var i=0; i<getAll.length; i++) {
  getHref = getAll[i].getAttribute('href');
  if (getHref !== null) {
    myArray.push(getHref);
  }
}

我不知道如何将我的属性与 DOM 元素链接起来。我尝试使用 indexOf('') 查找部分文本,但它不起作用,因为它在数组中查找完整字符串。有人会这么好心帮助我吗?我不想使用任何框架。


现在我想将我的数组属性值与 DOM 元素配对 属于并且还能够找出文本的指定部分 匹配数组元素(属性)和 DOM 元素。

为什么不简单地使用以下方法仅获取那些匹配的元素contains选择器

var getAll = document.querySelectorAll("[href*='text-to-be-matched']");

这是一个NodeList你可以用它迭代for-loop并用您找到的内容索引 DOM 元素。

var attributeValToDOMMap = {};
getAll.forEach( function( element ){
   var hrefVal = element.getAttribute( "href" );
   attributeValToDOMMap[ hrefVal ] =  attributeValToDOMMap[ hrefVal ] || []; //in case one href value is common with multiple DOM elements
   attributeValToDOMMap[ hrefVal ].push( element );
});
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 vanilla Javascript 查找具有部分属性的 DOM 元素 的相关文章

  • 如何使用jQuery加载跨域html

    我有 2 个不同的 java web 项目在 2 个不同的 tomcat 服务器上运行 假设 projA 和 projB 在这里 我尝试从 projA 加载 projB 中可用的 html 我只是使用 jQuery load 来实现这一点
  • JSON 解析错误 - JSON 中位置 1 处出现意外标记 o

    我需要获取一个 JSON 对象并记录标题控制台以实现自动完成功能 我的 json 的示例如下 title Example 1 url http www example1 com title Example 2 url http www ex
  • Puppeteer 登录 Instagram

    我正在尝试使用 Puppeteer 登录 Instagram 但不知何故无法登录 你能帮助我吗 这是我正在使用的链接 https www instagram com accounts login https www instagram co
  • 如何指向预分配内存上的 2D/3D 空间

    我对用于嵌入式使用的代码进行了内存优化 它工作得很好 但这样做的结果是我在函数中间得到了大量的 1D 2D 和 3D malloc 和 frees 从而减慢了执行时间 出于多种原因 我决定改变我的做法 我想在执行开始时使用单个 malloc
  • xsl 方法中的自关闭标签:xml

    我正在使用一个使用 xsl method xml 创建 html 模板的网站 但是 当 xsl 引擎呈现 html 页面时 我遇到了标签自动关闭的问题 div div 转换为 gt div div 该方法需要保留 xml 否则页面的其他组件
  • 按周将对象数组拆分为组

    我有一个包含这样的数据的对象数组 date 01 01 2017 00 00 00 dataField1 dataField2 date 01 02 2017 00 00 00 dataField1 dataField2 date 01 1
  • Array.from 的时间复杂度

    时间复杂度是多少Array from 例如 const set new Set set add car set add cat set add dog console log Array from set time complexity o
  • 多个模板槽的相同槽内容

    在vuejs中 有没有一种方法可以为多个插槽设置相同的内容 而无需复制粘贴 So this
  • 在 R 中将数组转换为矩阵

    我有一个数组 其中包括名为 comp 的项目 是 否 的两个熟练度变量 theta0 theta1 这需要转换为一个矩阵 有什么方法可以转换像底部那样的矩阵吗 我的数组如下所示 gt priCPT i6 comp Yes theta1 th
  • 我以为我了解范围

    有人可以告诉我为什么 x 的最后一次记录等于0而不是1 我想因为它是在函数之外声明的 所以它具有全局范围 然后在函数中它的值设置为1并且该值将保持原样一个全球性的 我知道函数内的第一个 x 值是全局的 因为没有 var 关键字声明的任何变量
  • Backbone.View:delegateEvents 未将事件重新绑定到子视图

    我已将这个问题分解为尽可能小的示例 即 它只是为了演示问题 不一定代表现实世界的场景 假设我有一个父视图 此处为 MainView 其中包含一个子视图 此处为 SubView 如果在任何时候我需要重新渲染父视图 从而重新渲染子视图 我就会丢
  • up() 和 down() 与 Ext.getCmp()

    我很困惑我需要在 up down 和 Ext getCmp ID 之间使用哪一个作为 grep 对象 对我来说 定义对象的 ID 并通过 Ext getCmp ID 检索对象更容易 而且代码看起来更干净 例如 console log thi
  • html 标题的最大长度

    有谁知道我可以为 html title 属性输入的最大长度是多少以及是否允许使用特殊字符 根据当前的 HTML 4 和 5 规范 标题长度没有限制 但 IE 浏览器有 512 个字符的限制HTML 4 01 http msdn micros
  • Bootstrap 多选限制问题

    我使用创建了一个多选下拉列表引导多选 http davidstutz github io bootstrap multiselect 我需要在选项选择中设置一个限制 这里我将其设置为 5 如果达到限制 我只需禁用其他选择选项 它就可以完美工
  • 使用预先存在的数据库创建 PhoneGap iOS 应用程序

    我最近开始开发一个使用 PhoneGap 版本 2 8 0 作为药物查找器的应用程序 过去 我创建了该工具的 Web 版本 它使用 jQuery Mobile 和 PHP 来访问远程 SQL 数据库 PhoneGap 似乎是一个很有吸引力的
  • 使用二维动态数组编写一个类

    我有一个家庭作业 我并不是在寻找任何人为我做这项工作 我只是在一个小方面遇到了麻烦 尽管我也接受其他方面的建议 任务是 使用二维动态数组编写一个类 构造函数传入数组的维度 构造函数还将动态数组中的所有值初始化为行索引乘以列索引 交换二维数组
  • jQuery:array[i].children() 不是函数

    以下代码的灵感来自http ignorethecode net blog 2010 04 20 footnotes http ignorethecode net blog 2010 04 20 footnotes 当您将光标移到脚注符号上时
  • 使用 HTML 标签作为背景图像而不是 CSS background-image 属性?

    我需要使用 html img 标签作为背景图像 div 然后我将放置一个 p 的内容 我已经尝试过 但似乎无法让它们正确显示 我使用了相对位置 负值的边距 任何建议或指出我正确的方向将不胜感激 p div img src http www
  • React Native:当您的应用程序关闭时是否有回调函数?

    我有一个 setInterval 即使您关闭 而不是退出 应用程序也会继续运行 我想在我的应用程序关闭或设备进入睡眠状态时调用一个函数 以便清除 setInterval AppState 是你的朋友 看看AppState 的文档 https
  • 离子选择:预选值在单击一次之前是不可见的

    我刚刚在 ionic 版本 6 中创建了一个 ion select 我的问题是 我在页面加载时已成功预选了一个值 但此预选值未显示在 UI 中 它只是在我单击选择之后出现 但在它没有出现之前 如图 2 所示 我在 ionViewWillEn

随机推荐

  • difftime() 添加十进制数

    我正在尝试使用 difftime 获取特定日期的天数 如果我使用 11 月日期 10 11 2014 它工作正常 如果我使用 9 月日期 10 09 2014 它会在日期中添加 0 0417 知道我该如何解决这个问题吗 head dummy
  • 使用切片表示法反转字符串中的最后 n 个字符

    Let s是一个Python字符串并且n一个整数n lt len s 我怎样才能得到最后一个n字符来自s并使用切片符号反转它们 我的尝试如下 n 2 s 1234 print s n 1 prints 321 was expecting 4
  • 创建 PrintServer 对象时发生异常。 Win32 错误:打印机名称无效

    您好 当我尝试创建时遇到此异常printserver目的 这是我的代码 PrintServer printServer new PrintServer printServerName PrintQueue printQueue printS
  • JavaScript 占位符

    我对 javascript 真的很陌生 并且在它上遇到了很大的困难 我的代码如下 用更多的代码更容易解 释 所以基本上想要在每个占位符中显示每个图像 但按照我单击它们的顺序 因此 如果我单击 img 3 这将转到占位符 1 那么我单击的下一
  • 如何添加到 expo 托管项目的 build.gradle 中的默认配置?

    我需要将以下行添加到我的 expo 托管项目的 android build gradle 中的默认配置中 missingDimensionStrategy store play 我相信我需要制作一个模组 插件来添加此内容 但这会是什么样子
  • Android 渐变永远不会起作用(总是出现条带)

    我尝试添加 径向 渐变作为背景 在 Android 4 0 中 无论是作为背景图像还是以编程方式添加 但它们都不起作用 我只能在模拟器中测试它 但我猜它在4 0设备上是一样的 这些解决方案不起作用 放置在 raw 文件夹中 禁用Androi
  • 复制或克隆 DataRow 的简单方法?

    我正在寻找一种简单的方法来克隆 DataRow 有点像拍摄该行的快照并保存它 原始行的值可以自由更改 但我们仍然有另一个保存的副本 该副本不会更改 这是正确的方法吗 DataRow Source Destination Assume we
  • 将新字段添加到来自 Netflix Zuul 预过滤器的请求正文

    我正在尝试在 Zuul 预过滤器中向请求正文添加一个新字段 我正在使用 Neflix 的 Zuul 示例项目之一here 我的过滤器的实现非常类似于UppercaseRequestEntityFilter从这个样本 我能够应用诸如大写之类的
  • 为什么“{} || {}”会抛出语法错误?

    这有效 var a 虽然这不会 Uncaught SyntaxError Unexpected token at Object InjectedScript evaluateOn
  • AWK/BASH:如何将一个文件中的字段与另一个文件中的字段进行匹配?

    我有 2 个文件 第一个包含以下内容 John Allen Smith II 16 555 555 5555 10 24 2010 John Allen Smith II 3 555 555 5555 10 24 2010 John All
  • 通过单击子图显示整个图像

    我裁剪了图像的某些部分 并将它们显示在带有子图的一张图中 次要情节的数量不确定 我从文件中读取图像然后裁剪它们 我的目标是 当我单击或双击子图时 我想在新图中看到整个图像 我想举一个例子来澄清我的问题 如果我单击第一个子图 我想在新图中看到
  • 使用 Xamarin Forms 在每个页面上显示不同的工具栏按钮

    我的 Xamarin Forms 应用程序中有 2 个页面 我的第一页工具栏中有 4 个图标 我的第二页是登录页面 工具栏中有一个勾号和一个叉号 除非将其设为导航页面 否则我无法让登录页面显示任何图标 我还必须在调用 PushAsync 之
  • 使用 Xcode 6 中的自动布局约束模拟宽高比匹配行为

    我想使用自动布局以让人想起 UIImageView 宽高比内容模式的方式调整视图的大小和布局 我在 Interface Builder 的容器视图内有一个子视图 子视图有一些我希望尊重的固有宽高比 容器视图的大小在运行时之前是未知的 如果容
  • 如何在sqlite中存储json数据

    我很难将数据以 JSON 格式存储到我的 Rails 应用程序的 sqlite 数据库中 我已经搜索了如何在我的 sqlite 数据库中将数据存储为 JSON 但没有看到很多有前途的替代方案 谁能指导我如何做到这一点 您需要从 JSON 生
  • 如何通过 Bash 脚本检查文件是否存在?

    我正在尝试克隆一个存储库并在通过 bash 脚本完成后对其进行测试 我已经根据以下内容编写了测试代码Bash Shell 检查文件是否存在 bin bash echo TRY TO INIT INFER Clone Infer INFER
  • Android如何创建堆栈类型的图像背景

    我正在开发一个应用程序 我需要在其中创建相册并将其显示在 GridView 中 现在我只是在没有任何背景的情况下显示它们 但我需要专辑封面的背景 以便它看起来像一堆照片 背景是这样的 我尝试了这个 但不起作用 首先我创建了一个像这样的单一背
  • 在asp.net MVC中DropDownList设置所选项目

    我注意到在我看来是 ASP NET MVC 中的一个错误 或者只是我做错了什么 我目前使用的是 1 0 所以也许这个问题将在 2 0 版本中得到解决 但无论如何 我们开始吧 当我的视图模型有一个与下拉列表声明的 id 名称相同的属性时 所选
  • 强制 R 将科学记数法写为带上标的 n.nn x 10^-n

    假设我有两个花车 a lt 8 9384920e 24 b lt 0 00293892837 我想在图表上以 10 基科学记数法四舍五入到两位小数显示它们中的任何一个 可能使用paste 但在 10 之后采用上标格式 8 94 x 10 2
  • 如果文件是在过去一小时内创建的,则从 FTP 下载文件

    我需要从 FTP 上的特定文件夹下载文件 但仅限于创建时间在过去一小时内的文件 所以基本上我需要列出该文件夹中的所有文件 然后仅下载时间戳与执行时间相差超过一小时的文件 关于如何解析 FTP 上文件的时间戳有什么想法吗 我无法使用任何第 3
  • 使用 vanilla Javascript 查找具有部分属性的 DOM 元素

    假设我有一个网站 我想使用循环遍历其 DOM 元素的脚本 并指出这些元素的属性包含指定文本的一部分 我成功创建了一个简单的循环 可以找到 DOM 元素的每个所需属性并从中创建数组 现在我想将数组属性值与其所属的 DOM 元素配对 并且还能够