如何从元素中获得第二个类名?

我试图找出如何检索类属性的第二个类的名称。

例如,具有:

<div class="something fooBar"></div> 

我怎样才能得到名为“fooBar”的第二个类?

我知道你可以添加,删除和检查一个特定的类,但我找不到文档如何检索第二个类到一个variables。

你可以像这样使用split

 alert($('#divID').attr('class').split(' ')[1]); 

要获得所有的课程,你可以这样做:

 var classes = $('#divID').attr('class').split(' '); for(var i=0; i<classes.length; i++){ alert(classes[i]); } 

更多信息:

这是通过引用div ID来实现的

 $(document).ready( function () { alert($('#yourDivID').attr('class').split(' ')[1]); }); 

分割function将允许你用指定的分隔符分割一个string。 这将返回一个分隔值的数组。 在这种情况下,将返回一个类名的数组。

引用分割其他string的方法http://www.javascriptkit.com/javatutors/string4.shtml

你应该看看下面的jQueryselect器和函数来访问类

select

http://api.jquery.com/class-selector/select一个具有指定类的DOM元素;

http://api.jquery.com/has-selector/select一个具有指定select器的dom元素;

function

http://api.jquery.com/addClass/方法添加一个类到一个jQuery对象;

http://api.jquery.com/removeClass/方法将一个类移除到一个jQuery对象;

http://api.jquery.com/toggleClass/方法将一个类切换到一个jQuery对象;

http://api.jquery.com/hasClass/方法来检查一个jQuery对象是否有指定的类;

http://api.jquery.com/attr/方法来检索一个jQuery对象的属性;

编辑: 好的备忘单 替代文字

 // alerts "8" alert($('<div class="something 8"></div>').attr('class').split(' ')[1]); 

作为select,使用data-* html属性来跟踪状态总是更好的做法,例如$(“div.example”).data(“active”)

您可以获取类属性的值并将其拆分为空间。

 secondClass = element.className.split(' ')[1]; 

这是不正确的。 如果class级分隔了一个以上的空间,而你获得了第二class,你就会变成空的。 例:

 <div class="something fooBar"></div> var classes = $('div').attr('class').split(' '); alert('classes: ' + classes + '; length: ' + classes.length ); // classes: something,,,fooBar; 4 

我使用下面的代码:

 /* * el - element * num - class number */ function getNumClass(el, num) { var classes = el.split(' '); var newclasses = []; var ret; for (var i = 0; i < classes.length; i++) { ret = $.trim(classes[i]); if(ret.length > 0) { newclasses.length += 1; newclasses[newclasses.length-1] = ret; } } if (num > newclasses.length) return false; return newclasses[num - 1]; }