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

时间:2010-11-21 19:45:22

标签: jquery class

我正在尝试找出如何检索类属性的第二个类名。

例如,拥有:

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

如何获得名为“fooBar”的第二个类?

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

7 个答案:

答案 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

enter image description here

答案 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)

您可以像

template<>

然后您就可以做到

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

来源javascript split string

相关问题