Similar a esta pregunta , quiero cambiar algo de texto dentro de un div dinámico. La explicación allí no funcionó para mí, así que comencé un nuevo hilo (representante demasiado bajo para comentar). Lo que hace que este div sea "dinámico" es un script que calcula cuánto dinero necesita gastar (según los artículos agregados al carrito) para obtener el envío gratis. La declaración que quiero reemplazar siempre está ahí. Supongo que podrías llamarlo borrar la parte del texto. :)
Mi división:
<div class="free-shipping__content">Brakuje Ci 151,00 zł do darmowej dostawy (Paczkomaty InPost).</div>Mi código en GTM (cargado en DOM listo):
<script type="text/javascript"> (function(){ var elements = document.querySelectorALL(".free_shipping__content"); for (i = 0; i < elements.length; ++i) { var str = elements[i].innerHTML; elements[i].innerHTML = str.replace(" (Paczkomaty InPost)", ""); } })(); </script>¡Gracias!
Buen trabajo en ese cierre.
document.querySelectorALL no es una función. Querías decir document.querySelectorAll .
Otro problema es su selector css. Está utilizando .free_shipping__content mientras que el nombre de la clase real es diferente. Su selector debe ser .free-shipping__content
Después de estas correcciones, su código funciona. Sin embargo, ya lo reescribí para probarlo correctamente, por lo que también podría ofrecer una solución más legible y elegante:
document.querySelectorAll(".free-shipping__content").forEach(function (el) { el.innerHTML = el.innerHTML.replace(" (Paczkomaty InPost)", ""); });