Подтвердить что ты не робот

Как получить второе имя класса из элемента?

Я пытаюсь выяснить, как получить второе имя класса атрибута класса.

Например, имея:

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

Как я могу получить второй класс с именем fooBar?

Я знаю, что вы можете добавлять, удалять и проверять определенный класс, но я не смог найти документацию о том, как получить второй класс в переменной.

4b9b3361

Ответ 1

Вы можете использовать split следующим образом:

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

Чтобы получить все классы, вы можете сделать это вместо:

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

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

Дополнительная информация:

Ответ 2

Вот как вы это сделаете, ссылаясь на идентификатор div

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

Функция split позволит вам разделить строку с указанным разделителем. Это вернет массив ваших разделенных значений. В этом случае будет возвращен массив имен классов.

Ссылка для разделения других методов строк http://www.javascriptkit.com/javatutors/string4.shtml

Вы должны посмотреть следующие jQuery Selectors и Functions для доступа к классам

Селекторы

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 alt text

Ответ 3

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

Ответ 4

в качестве альтернативы всегда лучше использовать атрибуты data- * html для отслеживания состояний, например $( "div.example" ). data ( "active" )

Ответ 5

Вы можете получить значение атрибута класса и разбить его на пробел.

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

Ответ 6

Это неверно. Если классы разделены более чем на один пробел, и вы получаете второй класс, вы становитесь пустыми. Пример:

<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];
}