#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');