如何从元素中获得第二个类名?
我试图找出如何检索类属性的第二个类的名称。
例如,具有:
<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]; }