Атрибут jQuery - возвращает несколько классов, а не только 1-й - PullRequest
6 голосов
/ 12 мая 2010

Учитывая div, такой как:

<div class="widget block dock clock">yada yada</div>

Я бы хотел использовать JQUERY $(div).attr('class');

чтобы найти все классы, но JQUERY.attr только возвращает виджет. Есть ли способ с JQUERY вернуть все классы, определенные для элемента?

Спасибо

Ответы [ 4 ]

15 голосов
/ 12 мая 2010

То, что у вас сейчас есть, будет работать, вот краткое демо :

alert($("div").attr("class"));​ //alerts "widget block dock clock"

Следует иметь в виду, что .attr() возвращает этот атрибут в первый соответствующий элемент из документов:

Важно отметить, что метод .attr() получает значение атрибута только для первого элемента в соответствующем наборе. Чтобы получить значение для каждого элемента отдельно, нам нужно полагаться на циклическую конструкцию, такую ​​как метод jQuery .each().

Так, например, что-то вроде этого:

<div class="widget">yada yada</div>
<div class="widget block dock clock">yada yada</div>​

Предупреждает только "widget", поскольку это класс первого соответствующего элемента.

5 голосов
/ 15 декабря 2011

Ник упоминается с помощью .each () ...

... но ... более простым способом может быть итерация с помощью .split () :

(this).attr("class").split(" ")

... тогда вы имеете дело с простым старым массивом строк JavaScript

2 голосов
/ 12 мая 2010
2 голосов
/ 12 мая 2010

.attr ('class') вернет все классы, определенные для элемента. Визуальный стиль определяется не только классами, но и свойствами css. Вы можете также захотеть опросить их с помощью .css ('param-name')

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...