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



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



вот пример:



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


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



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

613   6  

6 ответов:

можно использовать 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]);
});

функция 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

редактировать: хорошая шпаргалка

enter image description here

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

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

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

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

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

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

Comments

    Ничего не найдено.