如何在jQuery中获取当前选择器?

时间:2013-10-08 15:54:37

标签: jquery

如果我有以下代码,

$(".selector1, .selector2, .selector3").click(function() {
    switch(CURRENT SELECTOR) {

    }
});

我需要内部的当前选择器来表示switch语句,例如“selector1”,“selector2”。不推荐使用jQuery中的selector选项,因此无法使用。我也在使用jquery 1.4.2,所以请尽量保持它。

3 个答案:

答案 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) {

    }
});

Working demo

<强>参考:

http://api.jquery.com/attr/

答案 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才被弃用。