我想使用jQuery获得类名

如果它有id

<div class="myclass"></div>

当前回答

你可以简单地用,

var className = $('#id').attr('class');

其他回答

<div id="elem" class="className"></div>

使用Javascript

document.getElementById('elem').className;

与jQuery

$('#elem').attr('class');

OR

$('#elem').get(0).className;

当您想要检查元素是否具有特定的类时,最好使用. hasclass()。这是因为当一个元素有多个类时,检查起来并不简单。

例子:

<div id='test' class='main divhover'></div>

地点:

$('#test').attr('class');        // returns `main divhover`.

使用. hasclass()我们可以测试div是否具有类divhover。

$('#test').hasClass('divhover'); // returns true
$('#test').hasClass('main');     // returns true

如果我们有一个div元素,或者我们想要第一个div元素,我们可以使用

$ (div)[0]。否则,我们需要该元素的id

也许,你有一个类和一个子类。

  <div id='id' class='myclass mysubclass' >dfdfdfsdfds</div>

如果你使用以前的解决方案,你将有:

myclass mysubclass

因此,如果你想要类选择器,请执行以下操作:

var className = '.'+$('#id').attr('class').split(' ').join('.')

你会得到

.myclass.mysubclass

现在如果你想选择所有具有相同类的元素,比如上面的div:

   var brothers=$('.'+$('#id').attr('class').split(' ').join('.'))

这意味着

var brothers=$('.myclass.mysubclass')

更新2018

或可以实现与香草javascript在2行:

  const { classList } = document.querySelector('#id');
  document.querySelectorAll(`.${Array.from(classList).join('.')}`);

如果您打算使用split函数来提取类名,那么您将不得不弥补可能产生意外结果的潜在格式变化。例如:

" myclass1  myclass2 ".split(' ').join(".")

生产

".myclass1..myclass2."

我认为最好使用正则表达式来匹配类名所允许的字符集。例如:

" myclass1  myclass2  ".match(/[\d\w-_]+/g);

生产

["myclass1", "myclass2"]

正则表达式可能不完整,但希望您理解我的观点。这种方法减少了格式不佳的可能性。