Javascript 根据条件选择HTML标记

Javascript 根据条件选择HTML标记,javascript,Javascript,我有一个HTML文档,其中的元素包含带有值的id标记。我试图选择ID值大于某个数字的所有标记 示例:我想选择id大于2的所有矩形 <rect id='1'></rect> <rect id='2'></rect> <rect id='3'></rect> 但是我不知道如何把条件写在里面 [编辑] 我忘了提到我只想要那些包含ocrx\u单词的类名的元素 我试着跑过去 const wordId = document.que

我有一个HTML文档,其中的元素包含带有值的id标记。我试图选择ID值大于某个数字的所有标记

示例:我想选择id大于2的所有矩形

<rect id='1'></rect>
<rect id='2'></rect>
<rect id='3'></rect>
但是我不知道如何把条件写在里面

[编辑]

我忘了提到我只想要那些包含
ocrx\u单词的类名的元素
我试着跑过去

  const wordId = document.querySelector('[bbox=' + '"' + pageOneWord + '"' + ']'[0]);
        const rects = [...document.querySelectorAll('.ocrx_word[data-num]')]
        const wantedIds = rects.filter(({id}) => Number(id) > word)
        console.log(wantedIds)
但是我收到了

document.querySelectorAll(...).slice is not a function 

您不能在查询字符串中设置和执行数学条件,但可以选择具有
id
属性的所有标记,然后根据强制为数字的属性是否满足您的条件进行筛选:

const rects=[…document.querySelectorAll('rect[id]);
常量filteredRects=rects.filter({id})=>Number(id)>2;
控制台日志(filteredRects)

试试看

let n=[…document.queryselectoral('.ocrx_word')].filter(x=>+x.id>2)
控制台日志(n)


谢谢您的帮助。我试图采纳你的建议,但我面临一个问题。请查看我问题中的编辑错误是
.slice()
,但据我所知,您没有在代码中的任何地方调用
slice
。@CertainPerformance No.它指的是扩展运算符
const rects=[…document.querySelectorAll('.ocrx_word')]
spread运算符不调用
slice
-发布的代码不应导致您描述的错误。我成功地选择了所需的矩形,但当我尝试过滤它们时,它说rects.filter不是一个函数<代码>让word=document.querySelector('[bbox='+'''''+''+'+'+'+']'[0]);const rects=document.querySelectorAll('.ocrx_word[id]')const wantedIds=rects.filter({id})=>Number(id)>word)console.log(wantedIds)
您没有将节点列表转换为数组-您必须这样做才能对其调用
filter
。(参见答案中的代码-我将节点列表扩展到一个数组中以实现这一点)
document.querySelectorAll(...).slice is not a function 
[...document.querySelectorAll('.ocrx_word')].filter(x=>+x.id>2)