【问题标题】:same id and class appear on differents divs when they all are different当它们都不同时,相同的 id 和 class 出现在不同的 div 上
【发布时间】:2020-10-02 23:28:58
【问题描述】:

当我点击数字时我得到了这个https://jsfiddle.net/jd6tw8fb/3/ 它应该显示它自己的 id 或类,但它总是相同的,当我在控制台上写 childrenImg 时,所有 id 和类也不同我想让它工作,所以我将图像替换为另一个图像,但又一次,它不起作用,我不知道为什么,收到任何想法

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>     

【问题讨论】:

    标签: javascript html jquery class


    【解决方案1】:

    您的代码存在多个问题:

    1. 您没有选择正确的元素
    2. 您的点击事件处理程序正在尝试从其他元素而不是当前元素访问 id 和 class

    更新为:

    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')
    })
    

    【讨论】:

      最近更新 更多