当id与正则表达式匹配时,有没有办法调用函数?
我有一个应用程序,我有大约20个左右的div通过onclick调用相同的功能,我试图摆脱onclicks,只是通过id找到这些div。 div的id以相同的方式开始,例如:sameId_xxx
这就是我的工作,但我想知道我是否可以将条件放在函数调用中,因此不会为页面上的每个div调用它。
$("div").click(function () {
var id = this.id;
if (id.match(/sameId_/)) {
}
}
答案 0 :(得分:7)
$('div[id^="sameId_"]').click(...)
有关详细信息,请参阅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'))});
上的现场演示
或者您可以在代码中使用var id = $(this).attr('id')
。
答案 3 :(得分:0)
我认为其他答案(在前面过滤id)会更好,但对后人来说,这就是你实际要求的内容:
$("div").click(function () {
var id = this.id;
if (id.match(/(sameId_)(.)+/)) {
console.log("matched");
}
});
其中“sameId_”是您想要匹配的区分大小写的表示形式。