Jquery получить класс элемента

Да, Вы правы, в jQuery нет функции get >attr() :

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

Обратите внимание, что у одного элемента на странице может быть несколько классов, они записываются через пробел, поэтому, в зависимости от задачи, Вам может понадобиться разбить полученную строку на массив, например, так:

Ещё в jQuery есть булева функция hasClass() , которая проверяет наличие того или иного класса у элемента. Иногда также требуется проверить наличие у элемента несколько классов.

Задача получения класса элемента по его ID обратно противоположна получению ID элемента, если известен его класс.

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

Итак, для чего именно нужен данный метод мы касаться не будем, ибо вариантов может быть много, и сразу перейдем к реализации. Подключаем jQuery. Повесим на событие "click" по всей области body анонимную функцию, принимающую аргумент event. В этом объекте и будет содержаться вся информация о событии. Чтобы получить объект, нужно обратиться к свойству event.target. Чтобы получить id объекта — event.target.id

Кроме того, объект event также содержит другие весьма полезные данные, например:

  • event.target — объект, в котором сработал обработчик события
  • event.target. >click me!

Исходный код желтого блока выше:

Смотрите также:

Как сделать простой калькулятор для сайта

Как быстро обработать большое количество фотографий и вставить их в html?

Всплывающая подсказка на jQuery

Появление (исчезновение) элемента по клику на JavaScript и на jQuery

есть ли способ в jQuery выполнить цикл или назначить массиву все классы, назначенные элементу?

Читайте также:  Ns1 reg ru ns2 reg ru

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

17 ответов

можно использовать document.getElementById(‘divId’).className.split(/s+/); чтобы получить массив имен классов.

затем вы можете перебрать и найти тот, который вы хотите.

jQuery на самом деле не помочь вам здесь.

почему никто просто не указан.

вот плагин jQuery, который вернет массив всех классов, которые соответствуют элементам

использовать его как

в вашем случае возвращается

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

здесь это jsFiddle я создал для демонстрации и тестирования http://jsfiddle.net/GD8Qn/8/

Уменьшенный Javascript

в поддерживаемых браузерах вы можете использовать элементы DOM’ classList собственность.

это массив-подобный объект, перечисляющий все классы, которые имеет элемент.

Если вам нужно поддерживать старые версии браузеров, которые не поддерживают classList свойство, связанная страница MDN также включает в себя прокладку для него — хотя даже прокладка не будет работать в версиях Internet Explorer ниже IE 8.

вы должны попробовать это:

возвращает массив всех текущих классов элемента.

обновление:

Как правильно указал @Ryan Leonard, мой ответ на самом деле не фиксирует точку, которую я сделал сам. Вам нужно как обрезать и удалить двойные пробелы (например) строку.заменить(/ +/г, " ").. Или вы можете разделить el.className, а затем удалить пустые значения с (например) arr.фильтр(логический).

или более современные

старый:

со всеми данными ответами, вы должны никогда не забывайте пользователя .отделка() (или $.trim ())

поскольку классы добавляются и удаляются, может случиться, что между строками классов существует несколько пробелов.. например, "class1 class2 class3"..

это превратится в [‘class1’, ‘class2′,",",",", "class3’]..

Читайте также:  Recuva инструкция на русском

когда вы используете trim, все несколько пробелы удаляются..

может это вам тоже поможет. Я использовал эту функцию для получения классов элемента childern..

в вашем случае вы хотите, чтобы класс doler_ipsum u мог сделать это сейчас calsses[2]; .

Попробуйте Это. Это даст вам имена всех классов из всех элементов документа.

Спасибо за это — у меня была аналогичная проблема, так как я пытаюсь программно связать объекты с иерархическими именами классов, хотя эти имена могут не обязательно быть известны моему скрипту.

javascript предоставляет атрибут classList для элемента узла в dom. Просто используя

вернет объект формы

объект имеет такие функции, как contains, add, remove которые вы можете использовать

у меня была аналогичная проблема, для элемента типа "изображение". Мне нужно было проверить, принадлежит ли элемент к определенному классу. Сначала я попробовал с:

но у меня есть хорошая "эта функция недоступна для этого элемента".

затем я проверил свой элемент в DOM explorer, и я увидел очень хороший атрибут, который я мог бы использовать: className. Он содержал имена всех классов моего элемента, разделенных пробелами.

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

В моем случае это сработало:

Я предполагаю, что это будет работать с другими видами элементов (кроме Гуи).

надеюсь, что это помогает.

немного поздно, но использование функции extend() позволяет вызывать "hasClass ()" для любого элемента, например:
var has );

вопрос в том, для чего предназначен Jquery.

а почему никто не дал .find () как ответ?

существует также classList для браузеров, отличных от IE:

вот вы идете, просто подправили readsquareответ, чтобы вернуть массив всех классов:

Читайте также:  Yii2 gridview связанные модели

передайте элемент jQuery функции, чтобы пример вызова был:

Я знаю, это старый вопрос, но все же.

если вы хотите управлять элементом

если вы хотите проверить, имеет ли элемент class

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *