我正在尝试使用某种正则表达式模式搜索网页中的所有元素。

我无法理解如何利用Javascript的regex对象来完成此任务。我的计划是使用jQuery选择器收集所有元素

$('div[id*="Prefix_"]');


然后进一步将集合中的元素ID与此匹配

var pattern = /Prefix_/ + [0 - 9]+ + /_Suffix$/;
//Then somehow match it.
//If successful, modify the element in some way, then move onto next element.


一个示例ID为“ Prefix_25412_Suffix”。仅5位数字更改。

这看起来很糟糕,可能不起作用:

1)我不确定是否可以将所有返回的jQuery存储到集合中,然后对其进行迭代。这可能吗??如果可以的话,我可以继续第二步。但是之后...

2)我将在第2步中使用什么功能?正则表达式示例均使用String.match方法。我不相信诸如element.id.match();之类的东西。已验证?

是否有一种优雅的方法来遍历特定正则表达式标识的元素并与之配合使用?
C#中的某些东西


  foreach(元素e在
  ElementsCollectedFromIDRegexMatch){//做东西}

最佳答案

只需使用“过滤器”功能:

$('div[id*=Prefix_]').filter(function() {
  return /^Prefix_\d+_Suffix$/.test(this.id);
}).each(function() {
  // whatever you need to do here
  // "this" will refer to each element to be processed
});


实际上,使用jQuery返回的集合作为集合并对其进行迭代是整个库的基本要点,因此可以。

编辑—评论使我意识到带有“ id”测试的初始选择器可能没有用;您可以仅对页面上的所有<div>元素进行操作,然后让自己的过滤挑选出您真正想要的元素。

07-24 18:03
查看更多