Highlight: forEach() 方法

可用性有限

此功能不是基线,因为它在一些最常用的浏览器中无法使用。

forEach() 方法是 Highlight 接口的方法,它会对 Highlight 对象中的每个 Range 对象执行提供的函数,按照插入顺序执行。

Highlight 是一个类似于 Set 的对象,因此这类似于使用 Set.forEach().

语法

js
forEach(callbackFn)
forEach(callbackFn, thisArg)

参数

callback

对每个 Range 对象执行的函数,接受三个参数

range, key

Highlight 中正在处理的当前 Range 对象。由于 Highlight 中没有键,因此将 range 传递给这两个参数。

highlight

调用 forEach()Highlight 对象。

thisArg

在执行 callbackFn 时用作 this 的值。

返回值

无(undefined)。

示例

下面的代码片段展示了如何创建一个包含两个范围的新突出显示,然后使用 forEach() 方法记录范围。

js
function logRanges(range, key, highlight) {
  console.log(`Highlight object ${highlight} contains range ${range}`);
}

const text = new Text("Time is an illusion. Lunchtime doubly so.");

const range1 = document.createRange();
range1.setStart(text, 0);
range1.setEnd(text, 4);

const range2 = document.createRange();
range2.setStart(text, 21);
range2.setEnd(text, 30);

const myHighlight = new Highlight();
myHighlight.add(range1);
myHighlight.add(range2);

myHighlight.forEach(logRanges);

规范

规范
ECMAScript 语言规范
# sec-set.prototype.foreach

浏览器兼容性

BCD 表仅在启用 JavaScript 的浏览器中加载。

另请参见