Как получить имя второго класса от элемента?
Я пытаюсь выяснить, как получить имя класса атрибута класса.
вот пример:
<div class="something fooBar"></div>
Как я могу получить второй класс с именем "fooBar"?
Я знаю, что вы можете добавлять, удалять и проверять определенный класс, но я не мог найти документацию, как получить второй класс в переменную.
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
редактировать: хорошая шпаргалка
в качестве альтернативы всегда лучше использовать атрибуты 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