Me gustaría cambiar un texto en un div si otro div tiene un atributo específico, en mi caso data-value .
En concreto, si un div tiene un atributo data-value="cars" otro div debería tener el texto "Comprar".
En el if data-value="cars" específico, me gustaría cambiar el texto "1" a "Comprar"
<div class="one">1</div>
Aquí el código de muestra
<div class="dynamic"> <div class="content"> <div data-value="cars"> Cars </div> <div data-value="truck"> Truck </div> <div data-value="moto"> Moto </div> </div> </div> <div class="change"> <div> 1 </div> <div> 2 </div> </div>¿Cómo puedo lograr eso en JS?
primero debe realizar una consulta sobre la existencia de cualquier elemento dentro del content que tenga el atributo de data-value de "cars"
use la función document.querySelector()
if (document.querySelector('.dynamic .content [data-value="cars"]')) ... luego debe establecer el contenido de texto de todos los elementos div dentro del change que tienen el valor 1 , usando el atributo .textContent
document.querySelectorAll('.change div') .forEach(div => if( div.textContent=="1") div.textContent="Buy");juntando todas las piezas
if (document.querySelector('.dynamic .content [data-value="cars"]')) { document.querySelectorAll('.change div') .forEach(div => if(div.textContent=="1") div.textContent="Buy" ); }