En mis páginas repite contenido breve como licencias de imágenes u otras cosas. La conveniencia también sería poder editarlos todos al mismo tiempo escribiendo solo uno. Sé que va en contra del SEO, pero realmente no me importan las penalizaciones de los motores de búsqueda. No puedo hacer que este javascript funcione. Y, sin embargo, creo que lo escribí bien.
<script type='text/javascript'> //<![CDATA[ var x = document.getElementById("license").document.querySelectorAll("#license"); var i; var text = "Hello world"; for (i = 0; i < x.length; i++){ x[i].innerHTML = text; } //]]> </script>Intente esto, pero no use más de una identificación. Algunos códigos pueden funcionar, pero generalmente es una mala idea, es mejor usar clases para cosas como esta.
var mytxt='lalal'; document.querySelectorAll(".test,#blah").forEach(function(elem){ elem.value=mytxt; }); <input type='text' class='test' readonly> <input type='text' class='test' readonly> <input type='text' class='test' readonly> <input id='blah' type='text' readonly> <input id='blah' type='text' readonly> <input id='blah' type='text' readonly>Si entiendo su requisito correctamente, entonces lo siguiente debería lograrlo.
let something = document.getElementsByClassName('something'); let button = document.getElementById('button'); // Convert to actual array something = Array.from(something); const update = (val) => { something.forEach(item => { item.innerHTML = val }) } button.addEventListener('click', () => update('Updated everything')) <div class="something">SOMETHINGGGGG</div> <div class="something">SOMETHINGGGGG</div> <div class="something">SOMETHINGGGGG</div> <div class="something">SOMETHINGGGGG</div> <div class="something">SOMETHINGGGGG</div> <div class="something">SOMETHINGGGGG</div> <div class="something">SOMETHINGGGGG</div> <div class="something">SOMETHINGGGGG</div> <div class="something">SOMETHINGGGGG</div> <div class="something">SOMETHINGGGGG</div> <div class="something">SOMETHINGGGGG</div> <div class="something">SOMETHINGGGGG</div> <div class="something">SOMETHINGGGGG</div> <div class="something">SOMETHINGGGGG</div> <button id='button'>UPDATE</button>En primer lugar querySelectorAll selecciona uno o más elementos y lo devuelve como una lista de elementos.
Está seleccionando elementos por id con esto ("#license") , por lo que solo devuelve el primer elemento con id="license" .
Para obtener una lista de elementos, debe seleccionarlos por clase o nombre como este,
Por clase document.querySelectorAll(".license")
Por nombre document.querySelectorAll("[name="license"]")
Te recomiendo que leas más sobre Document.querySelectorAll()