如果我有以下代码,
$(".selector1, .selector2, .selector3").click(function() {
switch(CURRENT SELECTOR) {
}
});
我需要内部的当前选择器来表示switch语句,例如“selector1”,“selector2”。不推荐使用jQuery中的selector选项,因此无法使用。我也在使用jquery 1.4.2,所以请尽量保持它。
答案 0 :(得分:3)
使用attr函数获取clicked元素的类值:
$(".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 :(得分:0)
以下是处理问题的四种方法:
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) {
//
}
答案 2 :(得分:0)
如果您使用的是jQuery 1.4.2,为什么不能使用.selector
属性?它直到1.7才被弃用。