Поменять класс с помощью jQuery

#jquery

#jquery

Вопрос:

Могу ли я использовать jQuery для замены определенного класса (.a) в полях ввода другим (.b) в моей таблице?

 <table id="myTable">
<tr>
    <td>Field 1</td>
    <td><input type="text" class="a"></td>
</tr>
<tr>
    <td>Field 2</td>
    <td><textarea class="a"></td>
</tr>
</table>
  

Ответ №1:

 $("#myTable").find(":input").removeClass('a').addClass('b');
  

Смотрите: http://jsfiddle.net/fqXvT/1 /

Комментарии:

1. Я не могу заменить все, мне нужно, чтобы это было сделано в таблице с ID =»myTable» Спасибо.

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

3. @santa: используйте :input селектор, который будет выбирать все типы полей ввода.

4. @NickLarson — Я думал, что ваш будет работать, но это не сработало в jsfiddle, обновленном с аналогичной логикой, которая, похоже, работает

Ответ №2:

@brendan’s работает, но в случае, если у вас возникла ситуация, когда вы не хотите этого промежуточного состояния между removeClass() и addClass () (что, я не уверен, происходит даже в DOM), попробуйте toggleClass () как с классом, который вы хотите отключить, так и с тем, который вы хотите включить:

Переключить класс()

Вы начинаете с «a», затем меняете на «b» по событию (или используете тот же вызов для обратного обмена, когда происходит обратное событие):

 $("#myTable").find(":input").toggleClass("a b");
  

Ответ №3:

С пользовательским интерфейсом jQuery вы могли бы использовать switchClass функцию:

 $selector.switchClass('a', 'b');