jQuery className горе - PullRequest
       10

jQuery className горе

1 голос
/ 18 декабря 2009

Я пытаюсь получить имя класса, который соответствует регулярному выражению проверенного ввода.

Если у меня есть это:

 <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/);

Но это произвело 'className is undefined' ошибки.

Я думаю, что моя проблема в том, что я использую className против объекта jQuery. Но я не совсем уверен, какова альтернатива.

Ответы [ 4 ]

9 голосов
/ 18 декабря 2009

Вы можете вызвать метод attr для получения любых базовых атрибутов нужного элемента.

$('.toggle:checked').attr('class').match(/toggle\-.+?\b/); 
6 голосов
/ 18 декабря 2009

className является стандартным членом DOM, а не свойством оболочки jQuery. Либо получите доступ через $('something')[0].className или jQuery $('something').attr('class'), но вы не можете смешивать их.

Похоже, у вас есть несколько radio с без общего доступа name? Это не сработает, все они будут действовать как отдельно проверяемые поля. Все radio элементы управления, которые принадлежат друг другу, должны иметь одинаковые name (но разные value s) и помещаться в одну форму.

0 голосов
/ 18 декабря 2009
$('.toggle:checked').hasClass('toggle-2');
0 голосов
/ 18 декабря 2009

Вам не нужен идентификатор для всех предметов, на которые стоит посмотреть jQuery?

...