1

IDが正規表現と一致するときに関数を呼び出す方法はありますか?

onclick で同じ関数を呼び出す約 20 個の div があるアプリがあり、onclicks を取り除き、id でそれらの div を見つけようとしています。たとえば、div ID は同じように始まります: sameId_xxx

これは私が取り組んでいるものですが、ページ上のすべてのdivに対して呼び出されないように、関数呼び出しに条件を入れることができるかどうか疑問に思っていました.

$("div").click(function () {
    var id = this.id;
    if (id.match(/sameId_/)) {

    }
}
4

4 に答える 4

7
$('div[id^="sameId_"]').click(...)

デモ: http://jsfiddle.net/kpcxu/

詳細については、属性がセレクターで始まるを参照してください。

于 2012-09-13T14:58:21.527 に答える
2

jQuery 'attribute contains selector' を試してください:

$('div[id*="sameId_"]').click(function() {
// Do stuff
});
于 2012-09-13T14:58:22.963 に答える
0

必要な条件を使用してすべての div をフィルタリングし、次にハンドラーを追加する方がよいと思います。

例えば:

$('div')
    .filter(function() { return $(this).attr('id') % 2 })
        .click(function(){alert($(this).attr('id'))});​

JSFiddleでのライブ デモ

または、コードで使用できvar id = $(this).attr('id')ます。

于 2012-09-13T15:04:34.397 に答える
0

他の回答(IDを前もってフィルタリングする)の方が良いと思いますが、後世のために、実際に求めたのは次のとおりです。

$("div").click(function () {
    var id = this.id;
    if (id.match(/(sameId_)(.)+/)) {
        console.log("matched");
    }
}​);​

ここで、「sameId_」は、一致させたいものの大文字と小文字を区別する表現です。

于 2012-09-13T15:07:50.823 に答える