Tengo un acordeón de arranque y estoy tratando de obtener ID y HREF para cada acordeón en jquery. aquí está mi código
$('.room-loop').each(function(id){ $('.room-loop-a').attr("href", '#'+(id)); $('.room-loop-body').attr("id", id) console.log(id) });pero id y href para cada clase llamada "room-loop-a" y "room-loop-body" es 3. Intenté muchos métodos como importar ID de variable y en loop convertirlo en id+=1, pero en attr no funciona ninguno de em. ¿algunas ideas?
Lo más probable es que necesite usar .find() dependiendo de su html.
$('.room-loop').each(function(id) { $(this).find('.room-loop-a').attr("href", '#room' + (id)); $(this).find('.room-loop-body').attr("id", "room" + id) console.log(id) }); El problema es que este $('.room-loop-a').attr("href", '#'+(id)); establecerá el mismo href para todos los elementos con el class room-loop-a
También tenga en cuenta que no se recomienda que su identificación comience con un número, por lo que he agregado room al frente, pero puede cambiarlo a su gusto.
Manifestación
$('.room-loop').each(function(id) { $(this).find('.room-loop-a').attr("href", '#room' + (id)); $(this).find('.room-loop-body').attr("id", "room" + id) console.log(id) }); <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <div class="room-loop"> <a href="" class="room-loop-a">room-loop-a</a> <div class="room-loop-body"> room-loop-body </div> </div> <div class="room-loop"> <a href="" class="room-loop-a">room-loop-a</a> <div class="room-loop-body"> room-loop-body </div> </div>