jquery - 正则表达式通配符选择器

标签 jquery jquery-selectors

我的 div 的 ID 是这样的:

<div id="drop_12_213_1">
<div id="drop_12_213_2">
<div id="drop_12_213_3">
<div id="drop_13_213_4">

我唯一知道的是drop最后一个数字(例如1)。

如何使用 jQuery 选择它?

$('div[id^=drop_*_*_1]') 不起作用?

我做错了什么?

TIA frgtv10

最佳答案

默认情况下,jQuery 不支持正则表达式作为选择器。有一些filters可以做到这一点。

您可以使用 jQuery filter() 来代替方法。

$('div').filter(function() {
    return this.id.match(/^drop_\d+_\d+_1$/);
}).html("match");

这基本上会检查文档中的所有 div 并使用 filter() 方法来查看它是否应该匹配。 我想这不会是最快的方法,您可以尝试尽可能地限制搜索(例如 $('div', container_of_divs)),但从您的外观来看正在尝试解析,看来结果比速度更重要。

请注意,您的正则表达式也是错误的。

drop_*_*_1 翻译为:

  • drop 后跟
  • _ 零次或多次,
  • _ 零次或多次,
  • _1

这将匹配 drop_1drop__1drop___..._1 等内容。

链接:

关于jquery - 正则表达式通配符选择器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12159248/

相关文章:

javascript - 在 javascript/jQuery 中将字符串转换为数字

javascript - 彩盒中的多个视频

javascript - 可以将 JQuery 选择器的结果存储在变量中吗?

javascript - jquery tr 选择器不工作

jquery - 更改ddslick中菜单栏的长度

javascript - 使用表 Jquery 在 div 中导航

javascript - css重绘了吗?然后做某事

javascript - 如果一个 div 包含所有指定元素,则选择该 div

javascript - jquery如何获取唯一选择器

javascript - jQuery .not(), 多个带有 id 的排除