我正在尝试找出如何检索类属性的第二个类名。
<div class="something fooBar"></div>
如何获得名为“fooBar”的第二个类?
我知道你可以添加,删除和检查特定的类,但我找不到文档如何将第二个类检索到变量中。
答案 0 :(得分:109)
您可以像这样使用split
:
alert($('#divID').attr('class').split(' ')[1]);
要获得所有课程,您可以改为:
var classes = $('#divID').attr('class').split(' ');
for(var i=0; i<classes.length; i++){
alert(classes[i]);
}
更多信息:
答案 1 :(得分:11)
这是通过引用div ID
来实现的$(document).ready( function () {
alert($('#yourDivID').attr('class').split(' ')[1]);
});
split函数允许您使用指定的分隔符拆分字符串。这将返回分隔值的数组。在这种情况下,将返回一个类名数组。
拆分其他字符串方法http://www.javascriptkit.com/javatutors/string4.shtml
的参考您应该查看以下用于访问类的jQuery选择器和函数
<强>选择器强>
http://api.jquery.com/class-selector/选择具有指定类
的dom元素http://api.jquery.com/has-selector/选择具有指定选择器的dom元素
功能
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对象的属性
已编辑:Nice cheat sheet
答案 2 :(得分:10)
// alerts "8"
alert($('<div class="something 8"></div>').attr('class').split(' ')[1]);
答案 3 :(得分:5)
作为替代方案,使用data- * html属性来跟踪状态总是更好的做法,例如$(“div.example”)。data(“active”)
答案 4 :(得分:4)
您可以获取class属性的值并将其拆分为空格。
secondClass = element.className.split(' ')[1];
答案 5 :(得分:0)
这不正确。如果类分隔了多个空格而你获得了第二个类,那么你就会变空。 例如:
<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];
}
答案 6 :(得分:0)