javascript - 在数组中查找跨度元素的索引时要搜索什么?

标签 javascript arrays

我正在尝试检索转换为数组的 HTML 子项集合中特定对象的索引。

数组由一定范围内被span标签包围的所有DOM元素组成。

我的计划是使用 indexOf数组上的方法,但是我不确定在该方法中使用哪个参数搜索元素。

下面是我的初始代码。

var htmlCollectionChildren = Array.prototype.slice.call(range.commonAncestorContainer.children);
console.log(htmlCollectionChildren.indexOf(xxx)

下面是数组的示例表示。每个跨度都是一个对象,具有大量参数。

[span#1.highlight, span#0.highlight]

0:span#1.highlight

1:span#0.highlight

我尝试将字符串 span#0.highlight 作为参数传递,但它返回 -1。

(htmlCollectionChildren.indexOf('span#1.highlight')

我应该搜索什么?

最佳答案

您可以通过 tagName 的串联值进行.filter(),如小写字符、"#"id “.”className

let match = "span#0.highlight";

let res = htmlCollectionChildren.filter(({id, className, tagName}) => 
            `${tagName.toLowerCase()}#${id}.${className}` === match);

关于javascript - 在数组中查找跨度元素的索引时要搜索什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48253639/

相关文章:

javascript - 使用 JavaScript 在新窗口中预览上传的图像

java - 字符串分词器到数组 java

Java迷宫最短路径误解

javascript - 获取数组中字符串的最后一个元素(Javascript)

java - 循环外数组更改(JAVA)

javascript - 在 GET 请求中仅发送部分数据

javascript - 在绘图模式下禁用 Google Maps API mousedown?

javascript - 我可以检索当前的 anchor 位置吗?

javascript - 如何在 TypeScript/Javascript 中递归迭代对象数组

arrays - append 到表的行