在正则表达式匹配上调用函数

时间:2012-09-13 14:54:55

标签: javascript jquery

当id与正则表达式匹配时,有没有办法调用函数?

我有一个应用程序,我有大约20个左右的div通过onclick调用相同的功能,我试图摆脱onclicks,只是通过id找到这些div。 div的id以相同的方式开始,例如:sameId_xxx

这就是我的工作,但我想知道我是否可以将条件放在函数调用中,因此不会为页面上的每个div调用它。

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

    }
}

4 个答案:

答案 0 :(得分:7)

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

演示:http://jsfiddle.net/kpcxu/

有关详细信息,请参阅Attribute Starts With selector

答案 1 :(得分:2)

尝试使用jQuery'属性包含选择器':

$('div[id*="sameId_"]').click(function() {
// Do stuff
});

答案 2 :(得分:0)

我认为最好使用必要条件过滤所有div,然后添加处理程序。

例如:

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

JSFiddle

上的现场演示

或者您可以在代码中使用var id = $(this).attr('id')

答案 3 :(得分:0)

我认为其他答案(在前面过滤id)会更好,但对后人来说,这就是你实际要求的内容:

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

其中“sameId_”是您想要匹配的区分大小写的表示形式。