10

プレフィックス「my」とサフィックス「0-9」を持つjQueryですべてのIDを選択する方法はありますか? これらの $("#my$1-4") のようなものですか、それともループで可能ですか?

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

3 に答える 3

25

うまくいくと思われる最初の考え:

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

JS フィドルのデモ

上記は、値で始まるすべてのdiv要素を選択し、返された要素を数字終わる要素にフィルターします。idmyid

参考文献:

于 2012-06-23T21:45:30.150 に答える
3

プレフィックス部分は、属性の開始文字セレクターを使用して簡単に実現できます。

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

ただし、文字の範囲を指定できるセレクターがないため、ループを使用する必要があります。私はお勧めしfilterます:

$("div").filter(function () {
    return /^my\d$/.test(this.id);
});
于 2012-06-23T21:45:08.647 に答える
1

「my」で始まる要素が何百万もないと仮定すると、次のことができます。

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

これは、「my」で始まる ID を持ち、数字を含み、長さが 3 文字しかないすべての要素を取得します (したがって、「my54」は一致しませんが、「my6」は一致します)。

于 2012-06-23T21:45:31.687 に答える