【发布时间】:2012-07-20 13:29:42
【问题描述】:
假设我的页面上有几个按钮,id 标签为id_1、id_2、id_3 等
我想要一个函数来覆盖所有被按下的字符,因此可以检查前 3 个字符是否为 id_。
$("?????").click(function(event) {
什么取代了??????
在这种情况下,我不能改用类。
【问题讨论】:
标签: jquery
假设我的页面上有几个按钮,id 标签为id_1、id_2、id_3 等
我想要一个函数来覆盖所有被按下的字符,因此可以检查前 3 个字符是否为 id_。
$("?????").click(function(event) {
什么取代了??????
在这种情况下,我不能改用类。
【问题讨论】:
标签: jquery
这也可以:
$('[id^=id_]').click(function() {
//Do stuff here
});
这会选择所有id 属性以id_ 开头的元素,因此id_1、id_2、id_3 等都会被选中。
但是,使用class 属性作为选择器可能更合适。与id 属性不同,class 属性不必是唯一的。因此,例如,您的页面上可以有 5 个按钮,每个按钮的类名称为 clickMe,并使用以下代码来监听任何按钮的点击:
$('.clickMe').click(function() {
//Do stuff here
});
希望对您有所帮助。
【讨论】:
[id 部分的意思是“带有属性id”,其余的意思是“以id_ 开头”,对吧?
[id 部分是属性的名称,id_ 是属性值的开头。
这个怎么样(我对 JavaScript 很陌生,可能不会工作):
for(var i = 0; i < maxId; i++) {
$("#id_"+i).click(function(e) {
//Blah blah blah
});
}
【讨论】:
click(function(e) { });的右括号
^=(见duplicate question)
试试这个
$(function(){
$('button[id^="id_"]').on('click', function(e){
alert($(this).attr('id'));
});
});
Here's 一个例子。
【讨论】: