如果我有以下代码,
$(".selector1, .selector2, .selector3").click(function() {
switch(CURRENT SELECTOR) {
}
});
我需要内部的当前选择器用于 switch 语句,例如“selector1”、“selector2”。jQuery 中的选择器选项已弃用,因此无法使用。我也在使用 jquery 1.4.2,所以请尽量保留它。
如果我有以下代码,
$(".selector1, .selector2, .selector3").click(function() {
switch(CURRENT SELECTOR) {
}
});
我需要内部的当前选择器用于 switch 语句,例如“selector1”、“selector2”。jQuery 中的选择器选项已弃用,因此无法使用。我也在使用 jquery 1.4.2,所以请尽量保留它。
使用attr函数获取被点击元素的类值:
$(".selector1, .selector2, .selector3").click(function() {
var elem_class = $(this).attr("class");
switch(elem_class) {
}
});
如果元素有多个类,你可以这样做:
$(".selector1, .selector2, .selector3").click(function() {
var arr = ["selector1", "selector2", "selector3"];
var arr2 = $(this).attr("class").split(" ");
var choosen_one = false;
for(var i=0; i<arr.length; i++) {
for(var j=0; j<arr.length; j++) {
if(arr[i] === arr2[j]) {
choosen_one = arr2[j];
break;
}
}
if(choosen_one) {
break;
}
}
switch(choosen_one) {
}
});
参考:
以下是处理您的问题的四种方法:
1)如果每个元素只有一个类 :
$(".selector1, .selector2, .selector3").click(function() {
switch($(this).attr("class")) {
}
});
2)唯一ID 不好,如果你想多次使用它
$("#selector1, #selector2, #selector3").click(function() {
switch($(this).attr("id")) {
}
});
3)唯一选择器
$("[data-selector=selector1], [data-selector=selector2], [data-selector=selector3]").click(function() {
switch($(this).data("selector")) {
}
});
4)多个事件处理程序:
$(".selector1").click(function() {
myFunction($(this));
});
$(".selector2").click(function() {
myFunction($(this));
});
$(".selector3").click(function() {
myFunction($(this));
});
function myFunction(myThis) {
//
}
如果您使用的是 jQuery 1.4.2,为什么不能使用该.selector
属性?它直到 1.7 才被弃用。