6

Получение имени класса с помощью jQuery

7

Заголовок: Получение имени класса с использованием jQuery

Описание проблемы:

Я пытаюсь получить имя класса элемента с помощью jQuery. У меня есть следующий HTML-код:

<div class="myclass"></div>

Кроме того, как можно проверить, есть ли у этого элемента ID?

Буду признателен за любую помощь!

5 ответ(ов)

11

Если вы получили элемент как jQuery объект другими способами, отличными от его класса, то вы можете воспользоваться следующим кодом:

var className = $('#sidebar div:eq(14)').attr('class');

Для получения ID используйте .attr('id').

Если вы находитесь внутри обработчика события или другого метода jQuery, где элемент представлен в виде чистого DOM-узла без обертки, вы можете использовать:

this.className // для классов, и
this.id // для ID

Оба этих метода являются стандартными для DOM и поддерживаются во всех браузерах.

2

Лучше использовать метод .hasClass(), когда вам нужно проверить, имеет ли элемент определённый класс. Это связано с тем, что если элемент имеет несколько классов, не так просто проверить это обычным способом.

Пример:

<div id='test' class='main divhover'></div>

Где:

$('#test').attr('class'); // возвращает `main divhover`.

С помощью метода .hasClass() мы можем проверить, есть ли у этого div класс divhover.

$('#test').hasClass('divhover'); // возвращает true
$('#test').hasClass('main');     // возвращает true

Таким образом, использование .hasClass() позволяет удобно и эффективно проверять наличие классов на элементах.

0

Будьте осторожны, возможно, у вас есть класс и подкласс.

<div id='id' class='myclass mysubclass'>dfdfdfsdfds</div>

Если вы используете предыдущие решения, вы получите:

myclass mysubclass

Таким образом, если вы хотите получить селектор класса, сделайте следующее:

var className = '.' + $('#id').attr('class').split(' ').join('.');

И у вас получится:

.myclass.mysubclass

Теперь, если вы хотите выбрать все элементы, имеющие те же классы, что и вышеупомянутая div:

var brothers = $('.' + $('#id').attr('class').split(' ').join('.'));

Это будет означать:

var brothers = $('.myclass.mysubclass');

Обновление 2018

Или можно реализовать на чистом JavaScript в 2 строки:

const { classList } = document.querySelector('#id');
document.querySelectorAll(`.${Array.from(classList).join('.')}`);
0

Чтобы извлечь второй класс из элемента с использованием jQuery, можно воспользоваться следующим кодом:

var class_name = $('#videobuttonChange').attr('class').split(' ')[1];

Этот код получает атрибут class элемента с id="videobuttonChange", разбивает его по пробелам и извлекает второй класс (индекс 1). Убедитесь, что у целевого элемента есть несколько классов, иначе этот код может вернуть undefined, если второго класса нет.

0

Вы можете просто использовать такой код:

var className = $('#id').attr('class');

Это позволит вам получить значение атрибута class элемента с заданным идентификатором id.

Чтобы ответить на вопрос, пожалуйста, войдите или зарегистрируйтесь