Проблемы с именем класса jQuery
Вопрос
Я пытаюсь получить имя класса, соответствующее регулярному выражению проверенного ввода.
Если у меня есть это:
<input type="radio" class="toggle toggle-1" />
<input type="radio" class="toggle toggle-2" checked="checked" />
<input type="radio" class="toggle toggle-3" />
Я хочу выяснить, что «toggle-2» — это проверенный класс.
$('.toggle:checked').className.match(/toggle\-.+?\b/);
Но это привело к ошибкам «имя класса не определено».
Я думаю, моя проблема в том, что я использую имя класса для объекта jQuery.Но я не совсем уверен, какова альтернатива.
Решение
Вы можете вызвать метод attr, чтобы получить любые базовые атрибуты нужного вам элемента.
$('.toggle:checked').attr('class').match(/toggle\-.+?\b/);
Другие советы
className — это стандартный член DOM, а не свойство-оболочка jQuery.Либо доступ через $('something')[0].className
или jQuery $('something').attr('class')
, но смешивать их нельзя.
Кажется, у вас есть несколько radio
без общего name
?Это не сработает, все они будут действовать как отдельно проверяемые поля.Все radio
элементы управления, которые принадлежат друг другу, должны иметь одинаковые name
(но другое value
s) и размещаться в одной и той же форме.
Разве вам не нужен идентификатор для всех элементов, на которые должен смотреть jQuery?
$('.toggle:checked').hasClass('toggle-2');