<div class="pre-class"> <div>100%</div> </div> Estoy tratando de eliminar el porcentaje (%) en el texto dentro del div después de la clase pre-class con textContent.replace("%","") pero simplemente no puedo apuntar a ese div específico
(Estoy trabajando en un sitio web más largo con muchos divs y no puedo agregarle una ID porque es de un código abreviado).
Pensé que podría hacer algo como esto:
var textContent = document.getElementsByClassName('gamipress-progress-bar-completed').getElementsByTagName('div');Básicamente estás ahí. No olvide que getElementsByClassname devuelve una matriz, así que simplemente use [0] para recuperar el elemento. Lo verás funcionando en el siguiente fragmento:
var textContent = document.getElementsByClassName('pre-class')[0].getElementsByTagName('div')[0].innerHTML; console.log(textContent) <div class="pre-class"> <div>100%</div> </div> let containers = document.getElementsByClassName("pre-class"); for (var i = 0; i<containers.length; i++) { let current = containers[i]; let textNode = current.children[0]; textNode.innerText = textNode.innerText.replace(/(\d)%/, '$1'); }; <div class="pre-class"> <div>100%</div> </div> Alternativamente, puede usar element.querySelector() (o querySelectorAll ) para encontrar los elementos correctos para reemplazar.
let textNode = document.querySelector(".pre-class > div"); // use querySelectorAll in case there can be multiple matches. textNode.innerText = textNode.innerText.replace(/(\d)%/, '$1'); <div class="pre-class"> <div>100%</div> </div>Puedes usar querySelector
let div = document.querySelector('div.pre-class > div'); div.innerText = div.innerText.replace('%', '') <div class="pre-class"> <div>100%</div> </div>