1

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

我有一个应用程序,我有大约 20 个左右的 div 通过 onclick 调用相同的函数,我试图摆脱 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 '属性包含选择器':

$('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 回答