我想使用jQuery获得类名

如果它有id

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

当前回答

在通过类以外的其他方式将元素获取为jQuery对象后,然后

var className = $('#sidebar div:eq(14)').attr('class');

应该能行。ID使用.attr(' ID ')。

如果你在事件处理程序或其他jQuery方法中,其中元素是没有包装器的纯DOM节点,你可以使用:

this.className // for classes, and
this.id // for IDs

两者都是标准的DOM方法,在所有浏览器中都得到了良好的支持。

其他回答

如果我们有一个代码:

<div id="myDiv" class="myClass myClass2"></div> 

使用jQuery来获取类名,我们可以定义并使用一个简单的插件方法:

$.fn.class = function(){
  return Array.prototype.slice.call( $(this)[0].classList );
}

or

 $.fn.class = function(){
   return $(this).prop('class');
 } 

该方法的使用将是:

$('#myDiv').class();

我们必须注意到,它将返回一个类列表,不同于本机方法元素。它只返回所附类的第一个类。因为元素通常有一个以上的类附加到它,所以我建议您不要使用这个原生方法,而是使用element。类列表或上面描述的方法。

它的第一个变体将以数组的形式返回一个类列表,第二个变体将以字符串的形式返回——类名以空格分隔:

// [myClass, myClass2]
// "myClass myClass2"

另一个重要的注意事项是,这两个方法以及jQuery方法

$('div').prop('class');

如果我们使用更常见的选择器,它指向许多其他元素,则只返回jQuery对象捕获的第一个元素的类列表。在这种情况下,我们必须标记元素,我们想要得到他的类,通过使用一些索引,例如。

$('div:eq(2)').prop('class');

这也取决于您需要对这些类做什么。如果你只是想检查一个类到这个id元素的类列表中,你应该使用方法"hasClass":

if($('#myDiv').hasClass('myClass')){
   // do something
}

如上面的评论所述。但是如果你需要把所有的类都作为选择器,那么使用下面的代码:

$.fn.classes = function(){
   var o = $(this);
   return o.prop('class')? [''].concat( o.prop('class').split(' ') ).join('.') : '';
 } 

 var mySelector = $('#myDiv').classes();

结果将是:

// .myClass.myClass2

你可以让它动态地创建一个特定的CSS重写规则。

问候

试一试

HTML

<div class="class_area-1">
    area 1
</div>

<div class="class_area-2">
    area 2
</div>

<div class="class_area-3">
    area 3
</div>

jQuery

<script src="https://code.jquery.com/jquery-1.11.3.js"></script>
<script type="application/javascript">
    $('div').click(function(){
        alert($(this).attr('class'));
    });
</script>

这也有用。

const $el = $(".myclass");
const className = $el[0].className;

在通过类以外的其他方式将元素获取为jQuery对象后,然后

var className = $('#sidebar div:eq(14)').attr('class');

应该能行。ID使用.attr(' ID ')。

如果你在事件处理程序或其他jQuery方法中,其中元素是没有包装器的纯DOM节点,你可以使用:

this.className // for classes, and
this.id // for IDs

两者都是标准的DOM方法,在所有浏览器中都得到了良好的支持。

为了完成怀特斯托克的答案(这是我找到的最好的答案),我做了:

className = $(this).attr('class').match(/[\d\w-_]+/g);
className = '.' + className.join(' .');

所以对于" myclass1 myclass2 ",结果将是'。myclass1 .myclass2”