Estoy tratando de crear un botón que no use ID para copiar texto de un campo de texto de entrada.
Pensé que la mejor manera de hacer esto sería usar un detector de eventos y luego hacer clic en activar la función que copiaría el texto del valor de entrada.
HTML:
<div> <input type="text" value="copy this" readonly> <button type=button id='btn'>Copy URL</button> </div>JS:
<script> document.querySelect('#btn').addEventListener('click', function() { jimsFunction(); }); function jimsFunction() { var copyText = document.getElementByTagName('input').value; copyText.select(); copyText.setSelectionRange(0, 99999); navigator.clipboard.writeText(copyText.value); alert("Copied: " + copyText.value); } </script>¿Alguien puede señalar lo que estoy haciendo mal aquí?
Gracias
tag elementos. se te s document.getElementByTagName ->document.getElemenstByTagNameIntentalo :
document.getElementById('btn').addEventListener('click', function() { jimsFunction(this) }); let btns = document.getElementsByClassName('btn') Array.from(btns).forEach(ele => { ele.addEventListener('click', function() { jimsFunction(this) }); }) function jimsFunction(input) { let ele = input.previousElementSibling ele.select() ele.setSelectionRange(0, 99999) navigator.clipboard.writeText(ele.value) alert("Copied: " + ele.value) } <div> <input type="text" value="copy this" readonly> <button type=button id='btn'>Copy URL</button> </div> <div> <input type="text" value="text 1" readonly> <button type=button class='btn'>Copy URL</button> </div> <div> <input type="text" value="text 2 (different)" readonly> <button type=button class='btn'>Copy URL</button> </div> Tiene una id duplicada, debe cambiar a class