#javascript #html #jquery #class
#javascript #HTML #jquery #класс
Вопрос:
У меня есть это https://jsfiddle.net/jd6tw8fb/3 / когда я нажимаю на номер, предполагается, что он отображает свой собственный идентификатор или класс, но он всегда один и тот же, когда я пишу childrenImg на консоли, все идентификаторы и классы разные, также я хочу, чтобы это работало, поэтому я заменяю изображение наеще один, но опять же, он не работает, и я не знаю почему, получена любая идея
let childrenBoth = $('div[class^="fila"], div[class^="pieceRow"]').children();
let childrenImg = $('div[class^="fila"]').children()
$(childrenBoth).on('click', function () {
var classes = $(this).attr('class')
let idImg = $(childrenImg).attr('id')
console.log(idImg)
let classImg = $(childrenImg).attr('class')
console.log(classImg)
$(classImg).attr('src', 'https://www.logocrea.com/2/wp-content/uploads/2016/07/cuadrado.png')})
HTML и все остальное в скрипке
div class="row ">
<div class="col-md-8 ">
<div class="card">
<div class="card-body">
<!-- <div class="card-title text-center p-2"><h5>Odontograma</h5></div> -->
<br>
<div class="pieceRow1">
<p class="pieza18" id="pieza18">18</p>
<p class="pieza17" id="pieza17">17</p>
<p class="pieza16" id="pieza16">16</p>
</div>
<div class="fila1 d-flex justify-content-leftr">
<div class="pieza18 "><img class="img-responsive" src="https://s3-us-west-2.amazonaws.com/s.cdpn.io/385126/600.jpg" alt="">
</div>
<div class="mr-3"></div>
<div class="pieza17"><img class="img-responsive" src="https://s3-us-west-2.amazonaws.com/s.cdpn.io/385126/600.jpg" alt="">
</div>
<div class="mr-3"></div>
<div class="pieza16"><img class="img-responsive" src="https://s3-us-west-2.amazonaws.com/s.cdpn.io/385126/600.jpg" alt="">
</div>
</div>
</div>
</div>
</div>
</div>
Ответ №1:
В вашем коде есть несколько проблем:
- Вы выбираете неправильные элементы
- Ваш обработчик click even пытается получить доступ к идентификатору и классу из других элементов, а не из текущего
Обновите его до:
let childrenBoth = $('div[class^="fila"], div[class^="pieceRow"]').children();
$(childrenBoth).on('click', function() {
let idImg = $(this).attr('id')
let classImg = $(this).attr('class')
$(`div.${classImg}>img`).attr('src', 'https://www.logocrea.com/2/wp-content/uploads/2016/07/cuadrado.png')
})