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

时间:2012-02-14 15:14:48

标签: javascript jquery

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

var classList = $(this).allTheClasses();

6 个答案:

答案 0 :(得分:55)

不需要使用jQuery:

var classList = this.className.split(' ')

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

var classList = $(this)[0].className.split(' ')
var classList = $(this).prop('className').split(' ')

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

$.fn.allTheClasses = function() {
    return this[0].className.split(' ');
}

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

答案 1 :(得分:10)

请注意,您还可以将myElement.classList用作类似于数组的简单对象。 This is supported by all major browsers for a while now, apart IE 9 and below

答案 2 :(得分:8)

这应该为你做的工作:

var classes = $('div').attr('class').split(" ");

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

答案 3 :(得分:3)

检查出来:

var classes = $('selector').prop('classList');

答案 4 :(得分:0)



function showClasses() {
  const div = document.querySelector('div');
  const classes = div.className.split(' ');

  const p = document.querySelector('p');
  p.innerHTML = classes;
}

<div class="foo bar">This div has foo, bar classes</div>
<p class='output'>Above div classes appear here</p>
<button onClick="showClasses();">Show div classes</button>
&#13;
&#13;
&#13;

HTML

<div class="foo bar">This div has foo, bar classes</div>

Vanilla JavaScript。它将返回一个类数组。

const div = document.querySelector('div');
const classes = div.className.split(" "); // ['foo', 'bar']

答案 5 :(得分:0)

element.classList.value

console.log("class")
console.log(document.getElementById('c2').classList.value)
<div id="c2" class="class1 class2"> i am two class</div>

获取属性

    console.log("class")
    console.log(document.getElementById('c2').getAttribute('class'))
    <div id="c2" class="class1 class2"> i am two class</div>

类名

   console.log("class")
        console.log(document.getElementById('c2').className)
        <div id="c2" class="class1 class2"> i am two class</div>

要制作数组,请选择上述任何一种方法

string.split(' ');