Задать вопрос
@amartynyuk

Как при клике на button менять у ссылки data-rel=""?

Как менять у ссылки data-rel="" при клике на button?

Нынешний код:
<button  class="cve"  onclick="document.getElementById('bodyone').data-rel='69c99408142132'">S</button>
<button  class="cve"  onclick="document.getElementById('bodyone').data-rel='69c99408143167'">M</button>  
<button  class="cve"  onclick="document.getElementById('bodyone').data-rel='69c99408143177'">L</button> 
<a class="btn-ens-action btn-ens-style" id="bodyone" data-rel="69c99408142132"> в корзину </a>
  • Вопрос задан
  • 193 просмотра
Подписаться 1 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Яндекс Практикум
    Фронтенд-разработчик
    10 месяцев
    Далее
  • Skillfactory
    Профессия Веб-разработчик
    12 месяцев
    Далее
  • Нетология
    Fullstack-разработчик на Python + нейросети
    20 месяцев
    Далее
Решения вопроса 3
0xD34F
@0xD34F Куратор тега JavaScript
Кнопки надо изменить - вырезаем инлайновые обработчики клика, значения для data-rel ссылки кладём в аналогичный атрибут:

<button class="cve" data-rel="69c99408142132">S</button>
<button class="cve" data-rel="69c99408143167">M</button>  
<button class="cve" data-rel="69c99408143177">L</button>

Дальше можно сделать делегированный обработчик клика, в котором будем пытаться подняться от целевого элемента к ссылке (в вашем случае было бы достаточно проверки наличия класса - if (t.classList.contains('cve')), но кто его знает, может, решите в будущем добавить внутрь кнопок ещё какие-то элементы):

document.addEventListener('click', ({ target: t }) => {
  if (t = t.closest('.cve')) {
    document.getElementById('bodyone').dataset.rel = t.dataset.rel;
  }
});

Или, есть вариант назначать обработчик клика непосредственно каждой кнопке:

const el = document.querySelector('#bodyone');
const onClick = e => el.dataset.rel = e.currentTarget.dataset.rel;
document.querySelectorAll('.cve').forEach(n => n.addEventListener('click', onClick));
Ответ написан
kores
@kores
Помог ответ? Отметь решением!
Можно так:

$(document).on('click','button.cve', function(){
    var datarel = $(this).attr("data-rel");
    $("#bodyone").attr('data-rel', datarel)
});


вот jsfiddle:
Ответ написан
StanislavNemytov
@StanislavNemytov
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы