【问题标题】:Find element in which regex matches using jquery?使用jquery查找正则表达式匹配的元素?
【发布时间】:2015-05-21 13:25:04
【问题描述】:

有没有办法使用正则表达式在其文本中搜索元素。例如,如果元素 p 中包含单词 kobra,则 jquery 选择器返回这些元素的列表,可选地将匹配的单词包装在 span 元素中。

我需要它来创建搜索功能。基本上有一个基于 li 的列表。用户输入一个术语,然后使用该正则表达式获取所有元素到元素选择器,然后单击下一个用户滚动到该位置。

【问题讨论】:

标签: javascript jquery regex


【解决方案1】:

如果不需要任何花哨,根据您的问题,用户输入搜索词,搜索词显示:使用 jQuery 的 contains 选择器,不需要正则表达式:

http://api.jquery.com/contains-selector/

 $('element:contains(kobra)') 

【讨论】:

  • 这可能会满足这个特定人的需要,但不适用于正则表达式。
  • 是的,毕竟我不认为我需要正则表达式
【解决方案2】:

使用 jQuery 选择器来匹配您要搜索的所有元素,然后在每个元素上运行您的正则表达式查询。这是一些粗略的伪代码:

$('.myParagraphs').each(function() {
  var obj = $(this);
  if (obj.text().matches(myRegexp)) {
    //code to scroll to that element
  }
});

【讨论】:

  • 这行得通吗,你不是在 jquery 元素中搜索正则表达式,而不是在其文本值中
  • 抱歉,忘记了 .text()。修复它
  • 但此代码将导致页面滚动到最后一个匹配的元素,因为在循环的每次迭代中它将滚动到匹配的元素。
  • 如果你添加了一个break;在该 if 语句中,则循环将在第一次匹配后停止执行。
猜你喜欢
  • 2016-08-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-10-08
  • 1970-01-01
  • 2011-04-05
  • 1970-01-01
相关资源
最近更新 更多