如何获取元素的所有CSS类?

fre*_*hie 32 javascript jquery

我有一个包含多个类的元素,我想在数组中获取它的css类.我该怎么做?像这样的东西:

var classList = $(this).allTheClasses();
Run Code Online (Sandbox Code Playgroud)

Thi*_*ter 60

无需使用jQuery:

var classList = this.className.split(' ')
Run Code Online (Sandbox Code Playgroud)

如果由于某种原因想要从jQuery对象中执行此操作,那么这两个解决方案也可以工作:

var classList = $(this)[0].className.split(' ')
var classList = $(this).prop('className').split(' ')
Run Code Online (Sandbox Code Playgroud)

当然你可以切换到overkill开发模式并为它编写一个jQuery插件:

$.fn.allTheClasses = function() {
    return this[0].className.split(' ');
}
Run Code Online (Sandbox Code Playgroud)

然后$(this).allTheClasses()会给你一个包含类名的数组.


Jav*_*ome 11

请注意,您还可以将其myElement.classList用作类似于数组的简单对象.除了IE 9及更低版本之外,目前所有主流浏览器都支持此功能.

  • 实际上classList不是一个数组而是一个[Dom令牌列表](https://developer.mozilla.org/en-US/docs/Web/API/DOMTokenList)所以请记住你不能直接使用数组方法远. (4认同)

mas*_*gns 8

这应该为你做的工作:

var classes = $('div').attr('class').split(" ");
Run Code Online (Sandbox Code Playgroud)

这将是其他解决方案的jQuery解决方案还有其他答案!