如何获得点击元素的类?

我无法弄清楚如何得到clicked元素的class值。

当我使用下面的代码时,我每次都得到“node-205”

jQuery的:

 .find('> ul') .tabs( { selectedClass: 'active', select: function (event, ui) { //shows only the first element of list $(this).children('li').attr('class'); }, cookie: { expires: 0 }, fx: fx }) 

HTML:

 <ul class="tabs"> <li class="node-205"></li> <li class="node-150"></li> <li class="node-160"></li> </ul> 

下面是一个快速的jQuery示例,它为每个“li”标签添加一个click事件,然后检索clicked元素的class属性。 希望能帮助到你。

 $("li").click(function() { var myClass = $(this).attr("class"); alert(myClass); }); 

同样,你不必在jQuery中包装对象:

 $("li").click(function() { var myClass = this.className; alert(myClass); }); 

而在较新的浏览器中,您可以获得完整的类名称列表 :

 $("li").click(function() { var myClasses = this.classList; alert(myClasses.length + " " + myClasses[0]); }); 

您可以使用myClass.split(/\s+/);在旧版浏览器中模拟classList myClass.split(/\s+/);

 $("li").click(function(){ alert($(this).attr("class")); }); 

这应该做的伎俩:

 ... select: function(event, ui){ ui.tab.attr('class'); } , ... 

有关ui.tab的更多信息,请参阅http://jqueryui.com/demos/tabs/#Events

我看到这个问题,所以我想我可能会扩大一点。 这是@SteveFenton的想法的扩展。 而不是将click事件绑定到每个li元素,将事件从ul下放下来会更高效。

对于jQuery 1.7和更高

 $("ul.tabs").on('click', 'li', function(e) { alert($(this).attr("class")); }); 

文档: .on()

对于jQuery 1.4.2 – 1.7

 $("ul.tabs").delegate('li', 'click', function(e) { alert($(this).attr("class")); }); 

文档: .delegate()

作为jQuery 1.3 – 1.4的最后一招

 $("ul.tabs").children('li').live('click', function(e) { alert($(this).attr("class")); }); 

要么

 $("ul.tabs > li").live('click', function(e) { alert($(this).attr("class")); }); 

文档: .live()

 $("div").click(function() { var txtClass = $(this).attr("class"); console.log("Class Name : "+txtClass); });