@sunnyrio

Как присвоить элементу определенный класс, элементу, в зависимости от полученного значения id?

Есть 4 кнопки с классом btn и у каждой кнопки свой id, также есть отдельно форма для отправки запроса с элементом input имеющим свой id="wtch_name".
Нужно чтобы при клике на какую либо из 4х кнопок в значение class этого input подставлялся class в зависимости от id нажатой кнопки.
  • Вопрос задан
  • 50 просмотров
Решения вопроса 1
0xD34F
@0xD34F Куратор тега CSS
Можно сделать объект, где ключами будут id кнопок, а значениями - имена классов:

const classes = {
  id1: 'class1',
  id2: 'class2',
  id3: 'class3',
};

$('button').click(function() {
  $('input')
    .removeClass(Object.values(classes).join(' '))
    .addClass(classes[this.id]);
});

Или добавить кнопкам атрибут, который будет содержать имя класса (id кнопкам в этом случае уже не нужны):

<button data-class="class1">click me</button>
<button data-class="class2">click me</button>
<button data-class="class3">click me</button>

$('button').click(function() {
  $('input')
    .removeClass($('button').get().map(n => n.dataset.class).join(' '))
    .addClass(this.dataset.class);
});
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
Eduson Москва
от 60 000 до 80 000 руб.
Sveak Барнаул
от 50 000 руб.
Bright Rich Санкт-Петербург
от 100 000 руб.
22 июл. 2019, в 18:33
200 руб./за проект
22 июл. 2019, в 18:28
10000 руб./за проект