Получение имени класса с помощью jQuery
Заголовок: Получение имени класса с использованием jQuery
Описание проблемы:
Я пытаюсь получить имя класса элемента с помощью jQuery. У меня есть следующий HTML-код:
<div class="myclass"></div>
Кроме того, как можно проверить, есть ли у этого элемента ID?
Буду признателен за любую помощь!
5 ответ(ов)
Если вы получили элемент как jQuery объект другими способами, отличными от его класса, то вы можете воспользоваться следующим кодом:
var className = $('#sidebar div:eq(14)').attr('class');
Для получения ID используйте .attr('id')
.
Если вы находитесь внутри обработчика события или другого метода jQuery, где элемент представлен в виде чистого DOM-узла без обертки, вы можете использовать:
this.className // для классов, и
this.id // для ID
Оба этих метода являются стандартными для DOM и поддерживаются во всех браузерах.
Лучше использовать метод .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()
позволяет удобно и эффективно проверять наличие классов на элементах.
Будьте осторожны, возможно, у вас есть класс и подкласс.
<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('.')}`);
Чтобы извлечь второй класс из элемента с использованием jQuery, можно воспользоваться следующим кодом:
var class_name = $('#videobuttonChange').attr('class').split(' ')[1];
Этот код получает атрибут class
элемента с id="videobuttonChange"
, разбивает его по пробелам и извлекает второй класс (индекс 1). Убедитесь, что у целевого элемента есть несколько классов, иначе этот код может вернуть undefined
, если второго класса нет.
Вы можете просто использовать такой код:
var className = $('#id').attr('class');
Это позволит вам получить значение атрибута class
элемента с заданным идентификатором id
.
Как узнать, какая радиокнопка выбрана с помощью jQuery?
Эквивалент document.createElement в jQuery?
Как выбрать элемент по имени с помощью jQuery?
jQuery: Получение Выбранного Значения Из Выпадающего Списка
Эквивалент jQuery $.ready() на чистом JavaScript - как вызвать функцию, когда страница/DOM готовы (дубликат)