使用jQuery获取类名

我想要使​​用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方法,并在所有浏览器中得到很好的支持

当你想检查一个元素是否有特定的class时,最好使用.hasClass() 。 这是因为当一个元素有多个class时,检查并不重要。

例:

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

哪里:

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

.hasClass()我们可以testingdiv是否有divhover类。

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

小心,也许你有一个class级和一个小class。

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

如果您使用以前的解决scheme,您将有:

 myclass mysubclass 

所以,如果你想有类select器 ,请执行以下操作:

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

你会有的

 .myclass.mysubclass 

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

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

那意味着

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

这是将第二个类用多个类放入一个元素中

 var class_name = $('#videobuttonChange').attr('class').split(' ')[1]; 

你可以简单地使用,

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

如果你的<div>有一个id

 ​<div id="test" class="my-custom-class"></div>​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​ 

…你可以试试:

 var yourClass = $("#test").prop("class"); 

如果你的<div>只有一个class ,你可以尝试:

 var yourClass = $(".my-custom-class").prop("class"); 

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

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

产生

 ".myclass1..myclass2." 

我认为你最好使用正则expression式匹配类名称的允许字符集。 例如:

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

产生

 ["myclass1", "myclass2"] 

正则expression式可能不完整,但希望你能理解我的观点。 这种方法可以减less糟糕格式化的可能性。

为了完成Whitestock的答案(这是我发现的最好的答案),我做了:

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

所以对于“myclass1 myclass2” ,结果将是“.myclass1 .myclass2”

你可以通过两种方式获得类名:

 var className = $('.myclass').attr('class'); 

要么

 var className = $('.myclass').prop('class'); 
 <div id="elem" class="className"></div> 

用Javascript

 document.getElementById('elem').className; 

用jQuery

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

要么

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

如果你不知道类名,但是你知道这个ID,你可以试试这个:

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

然后使用以下命令调用

 alert($('#currentST').attr('class')); 

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

$('div')[0].className否则我们需要该元素的id

如果你想获得div的类,然后想检查是否有任何类存在,那么简单的使用。

 if ( $('#div-id' ).hasClass( 'classname' ) ) { // do something... } 

例如;

 if ( $('body').hasClass( 'home' ) ) { $('#menu-item-4').addClass('active'); } 

尝试一下

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="jquery-1.11.3.js"></script> <script type="application/javascript"> $('div').click(function(){ alert($(this).attr('class')); }); </script>