У меня есть список, в котором элементы списка имеют несколько классов CSS, такие как:Как вернуть несколько классов CSS с помощью метода .attr()?
<li class="nav-all active"><a href="#">All</a></li>
Я пытаюсь использовать JQuery, чтобы вытащить эту информацию в строку по щелчку:
var navButtons = $(".nav li");
navButtons.click(function() {
var category = $(this).attr('class');
//Do more stuff here
});
Однако , Я получаю только первый класс, а не полную строку, которая в этом примере будет "nav-all active"
. Является ли это предполагаемой функциональностью? Я не вижу ничего такого поведения в API. Кроме того, есть ли способ изменить вызов .attr
, чтобы получить полный результат или this.className
здесь единственный вариант?
Редактировать: Спасибо за помощь, всем. Я основал образец кода в этом вопросе на более крупном скрипте, который динамически применял второй класс, и оказалось, что я вызывал .attr
в тот момент, когда li
имел только один класс, поэтому я получил правильный результат. Увидев скрипку, которую поделил @Barmar, мне помогли установить соединение, поэтому я предполагаю, что вынос - это тестирование небольших бит в изоляции.
Возможный дубликат [Jquery - прочитать все классы из DIV] (http://stackoverflow.com/questions/3802508/jquery-read-all-classes-from-a-div) –
Когда я пытаюсь, я получаю оба класса. http://jsfiddle.net/barmar/ds3nhv7q/ – Barmar
@SimonMerrick Проблема в этом вопросе оказывается опечаткой в скрипке. Его код работает, когда это исправлено. – Barmar