我有一个列表,其中列表项有多个CSS类,例如:
<li class="nav-all active"><a href="#">All</a></li>
我尝试使用jQuery在点击时将此信息拉入字符串:
var navButtons = $(".nav li");
navButtons.click(function() {
var category = $(this).attr('class');
//Do more stuff here
});
但是,我只返回第一堂课,而不是完整的字符串,在本例中为"nav-all active"
。这是预期的功能吗?我在API中没有看到任何有关此行为的信息。此外,有没有办法修改.attr
来电,以便我获得完整的结果,或者this.className
是唯一的选择?
编辑:感谢大家的帮助。我将这个问题中的示例代码基于一个更大的脚本,它动态地应用了第二个类,结果发现我在.attr
只有一个类的时候调用了li
,所以我得到了正确的结果。看到@Barmar分享的小提琴帮助我建立了连接,所以我想要的是拿出来测试较小的位。
答案 0 :(得分:3)
你可以通过使用this.classList来获取它,它会返回一个像list这样的数组。
var navButtons = $(".nav li");
navButtons.click(function() {
var category = this.classList;
category[0];// => "nav-all"
//Do more stuff here
});
有关tokenList https://developer.mozilla.org/en/docs/Web/API/DOMTokenList
的更多信息答案 1 :(得分:0)