jQuery 选择 # id 以 word 作为前缀,计数器作为后缀

jQuery Select # id with word as prefix and counter as suffix

本文关键字:前缀 计数器 后缀 word 选择 id jQuery      更新时间:2023-09-26

有没有办法用jQuery选择所有id,前缀为"my",后缀为"0-9"。像这些 $("#my$1-4") 的东西还是可以通过循环来实现?

    <div id="my1"/>
    <div id="my2"/>
    <div id="my3"/>
    <div id="my4"/>
    <div id="my5"/>

第一个想法,这似乎效果很好:

$('div[id^="my"]').filter(
    function(){
        return this.id.match(/'d+$/);
    });

JS小提琴演示。

上面选择id以值 my 开头的所有div元素,然后将返回的元素过滤为id以数字字符结尾的元素。

引用:

  • 属性开始于选择器。
  • filter() .
  • 正则表达式,在 Mozilla 开发者网络。

前缀部分可以通过属性 starts-with 选择器轻松实现:

$("div[id^=my]");

但是没有允许您指定字符范围的选择器,因此必须涉及循环。我建议filter

$("div").filter(function () {
    return /^my'd$/.test(this.id);
});

假设您没有数百万个以"my"开头的元素,您可以执行以下操作:

$('[id^=my]').filter(function() { return this.id.matches(/'d/) && this.id.length == 3 })

这将抓取所有 id 以"my"开头、包含一个数字且只有 3 个字符长的元素(因此"my54"将不匹配,但"my6"将匹配)