如何使用.attr()方法返回多个CSS类?

时间:2015-11-26 01:28:03

标签: jquery css

我有一个列表,其中列表项有多个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分享的小提琴帮助我建立了连接,所以我想要的是拿出来测试较小的位。

2 个答案:

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

我会像这样拆分类:

&#xA;&#xA;
  var category = $(this).attr('class')。split('')[ 0];&#xA;  
&#xA;&#xA;

小提琴

&#xA;