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