@Genri_Rus

Как обратиться к нескольким img через this?

Имеется такая структура кода:

<div>
  <p><input class="check" id="check-option-1" name="name" type="checkbox">
  <label for="check-option-1"></label>
  </p>
  <img src="http://lorempixel.com/30/30/city">
  <p class="copy">1</p>
  <p class="copy-2">1.1</p>
</div>
<div>
  <p><input class="check" id="check-option-2" name="name" type="checkbox">
  <label for="check-option-2"></label>
  </p>
  <img src="http://lorempixel.com/30/30/technics">
  <p class="copy">2</p>
  <p class="copy-2">2.1</p>
</div>


$('body').on('change', '.check', function(){
    
    if ($(this).prop('checked')) {
        let img = $('img').attr('src');
}
});

Мне нужно при нажатии на галочку записывать src картинки.

let img = $('img').attr('src') - вот так у меня выбирается только одна картинка.

А вот как сделать так, чтобы при выборе чекбокса выбиралась только та картинка, на которую я нажимал?
  • Вопрос задан
  • 129 просмотров
Решения вопроса 2
iiiBird
@iiiBird
Пока ты спишь - твой конкурент совершенствуется
let img = $(this).parent().siblings('img').attr('src');
Ответ написан
Добавьте картинке data-атрибут со значением ID инпута, который за ней закреплен:
<img src="http://lorempixel.com/30/30/city" data-input="check-option-1">

Далее получайте ID чекнутого инпута
$('body').on('change', '.check', function(){
    let id = $(this).attr('id');
    if ($(this).prop('checked')) {
        let img = $('img[data-id="'+id+'"]').attr('src');
}
});


В коде могут быть ошибки, работоспособность не проверял.

UPD: добавил песочницу https://jsfiddle.net/qf8zgshw/
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы
25 нояб. 2024, в 02:45
2000 руб./за проект
24 нояб. 2024, в 23:46
20000 руб./за проект