Estoy tratando de usar una combinación de JS y Jquery aquí para seleccionar el texto de entrada (algunos elementos anteriores), cuando se hace clic en el botón.
Sé cómo hacer esto usando JS, pero quiero entender cómo hacerlo usando jQuery. Recibo el mensaje de error en la consola: TypeError: ele.setSelectionRange no es una función. Lo que entiendo significa que no está definiendo el valor de entrada de la forma en que lo necesito.
No estoy usando ID o Clase aquí para identificar la entrada.
¿Puede alguien ayudarme aquí? Gracias
JS
$(document).ready(function () { $('.jimmy').click(function(e){ e.preventDefault; jimsFunction(this); }); }); function jimsFunction(input) { let ele = $(input).parent().siblings(':first-child').children(); ele.select(); ele.setSelectionRange(0, 99999); navigator.clipboard.writeText(ele.value); alert("Copied: " + ele.value); }HTML
<div class="colbody"> <div> <input type="text" value="www.brave.com" readonly> </div> <div> <a href="www.google.com" target="_blank">View</a> </div> <div> <button type="button" class="jimmy">Copy URL</button> </div> </div>setSelectionRange(0, 99999) no es un método en el objeto jQuery. Úselo en el elemento DOM.
Así que prueba: [0]
Ejemplo:
$('.jimmy').click(function(e) { e.preventDefault; jimsFunction(this); }); function jimsFunction(input) { let ele = $(input).parent().siblings(':first-child').children(); ele[0].select(); ele[0].setSelectionRange(0, 99999); navigator.clipboard.writeText(ele[0].value); alert("Copied: " + ele[0].value); } <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <div class="colbody"> <div> <input type="text" value="www.brave.com" readonly> </div> <div> <a href="www.google.com" target="_blank">View</a> </div> <div> <button type="button" class="jimmy">Copy URL</button> </div> </div>