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

Jquery 如何从元素中获取第二个类名?,jquery,class,Jquery,Class,我试图找出如何检索class属性的第二个类名 例如,拥有: 我怎样才能得到第二个名为“fooBar”的类 我知道您可以添加、删除和检查特定类,但我找不到如何将第二个类检索到变量中的文档。您可以像这样使用split: alert($('#divID').attr('class').split(' ')[1]); 要获取所有类,可以执行以下操作: var classes = $('#divID').attr('class').split(' '); for(var i=0; i<cla

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

例如,拥有:

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


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

您可以像这样使用
split

alert($('#divID').attr('class').split(' ')[1]);
要获取所有类,可以执行以下操作:

var classes = $('#divID').attr('class').split(' ');

for(var i=0; i<classes.length; i++){
  alert(classes[i]);
}
var classes=$('#divID').attr('class').split('');
对于(var i=0;i
//警报“8”
警报($('').attr('class').split('')[1]);

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

$(document).ready( function () {
  alert($('#yourDivID').attr('class').split(' ')[1]);
});
split函数将允许您使用指定的分隔符拆分字符串。这将返回一个分隔值数组。在这种情况下,将返回一个类名数组

拆分其他字符串方法的参考

您应该了解以下用于访问类的jQuery选择器和函数

选择器

选择具有指定类的dom元素

选择具有指定选择器的dom元素

功能

方法将类添加到jQuery对象

方法将类移除到jQuery对象

方法将类切换到jQuery对象

方法检查jQuery对象是否具有指定的类

方法检索jQuery对象的属性

编辑:


您可以获取class属性的值并在空间上拆分它

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

另一种方法是,最好使用data-*html属性来跟踪状态,例如$(“div.example”).data(“active”)

这是不正确的。如果类分隔了多个空间,而您得到的是第二个类,那么您得到的是空的。 例如:


变量类=$('div').attr('class').split('');
警报('classes:'+classes+';length:'+classes.length);
//课程:某物、、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];
}
/*
*el-元素
*num-类编号
*/
函数getNumClass(el,num){
风险等级=el.分割(“”);
var newclasses=[];
var-ret;
对于(var i=0;i0){
newclasses.length+=1;
newclasses[newclasses.length-1]=ret;
}
}
如果(num>newclasses.length)返回false;
返回newclasses[num-1];
}

您可以像

alert($('#divID').attr('class').split(' ')[1]);
那你就可以这么做了

 var classes = $('#divID').attr('class').split(' ');

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

对于(var i=0;i@user为什么要更改第二个类的名称,如果要更改第二个类上的某些css属性,仍然可以说$('.8')@gov,我正在使用第二个类名,因为我正在检索大量数据,无法再使用任何属性。@用户可以解释得更清楚些,我只是想了解为什么需要所有类名..../可能我遗漏了什么。记住。@david,但它可以以数值结尾,是吗?@gov,当然。这是为了投票脚本。我有投票向上和向下,向上和向下是第二类,这样我就可以知道有人点击了哪个按钮。至于ID和NAME属性,我用它们来做其他事情。使用第二类可以修剪一些多余的HTMLme@matt,我真的很惊讶,为什么人们能如此快速地找到解决方案,甚至完成输入代码也一样,人们在这个堆栈溢出中非常出色。在stackoverflow中创建了一个登录名之后,我一点也没有在我的开发中陷入困境,我在过去的两个月里学到了很多知识。几个月前,我开始进行UI开发,我曾经在后端和中间层编写过很多代码,这个网站让我的UI工作非常简单。我本会加入earler,但没问题。+1也是正确答案,尽管是的,我在15秒前:)感谢您的推荐!+1aah需要15个声誉,抱歉,获得后将重试:)@user468312…欢迎您的推荐。这是一张很好的备忘单,你可以把它放在你的电脑旁边。好的建议,有人(甚至几个月后的程序员)冷切换类的顺序或添加一个新的,因为这在正常情况下不会有什么不同。更简单的是:
var secondClass=$('div').attr('class').split(/\s+/)[1]
/*
 *   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];
}
alert($('#divID').attr('class').split(' ')[1]);
 var classes = $('#divID').attr('class').split(' ');

for(var i=0; i<classes.length; i++){
  alert(classes[i]);
}