如何获得点击元素的类?
我无法弄清楚如何得到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); });