jquery 1.9,获取每个内部的当前选择器

时间:2013-05-02 06:23:32

标签: jquery jquery-selectors

在jquery 1.9(及更高版本)中,如何从每个内部获取与元素匹配的选择器的名称?

$("[data='load-something'],.do-something,aside,#something-else").each(function(index,el){
    // want to know if this element matched because of the id, class, or data element, etc
});

3 个答案:

答案 0 :(得分:3)

你可以这样做......

var selectors = ["[data='load-something']",
                 ".do-something", 
                 "aside",
                 "#something-else"];

$(selectors.join(",")).each(function() {

   var element = $(this);

   if (element.is(selectors[0]) {
       // ...and so forth.
   } 

});

这有点混乱,所以如果你能更优雅地做,请做。

答案 1 :(得分:0)

检查

$(el).attr("data") //="load-something"
$(el).attr("class") //="do-something"
$(el).prop("tagName") //="aside"
$(el).attr("id"); //="something-else"

答案 2 :(得分:0)

试试这个:

$("[data='load-something'],.do-something,aside,#something-else").each(function(index,el){
    if($(this).attr('data')=='load-something')
        //called via data
    else if($(this).hasClass()=='do-something')
        //called via class
    else if($(this).prop('tagName')=='aside' || $(this).prop('tagName')=='ASIDE')
        //called via aside
    else 
        //called via id
});