jQuery选择#id,其中word为前缀,counter为后缀

时间:2012-06-23 21:40:20

标签: javascript jquery

有没有办法选择带有前缀“my”和后缀“0-9”的jQuery的所有id。 像这些$(“#my $ 1-4”)还是可以循环播放?

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

3 个答案:

答案 0 :(得分:20)

第一个想法,似乎运作良好:

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

JS Fiddle demo

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

参考文献:

答案 1 :(得分:1)

使用attribute starts-with选择器可以轻松实现前缀部分:

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

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

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

答案 2 :(得分:1)

假设您没有数百万个以&#34; my&#34;开头的元素,您可以这样做:

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

这会抓取所有ID为&#34;我的&#34;,包含一个数字的元素,并且只有3个字符长(所以&#34; my54&#34;不匹配,但&#34; my6&#34; will)