<h3>Something here</h3> <p id="copythis">Copy this code</p> <h3>Something here</h3> <p id="copythisone">Copy this other text</p> <h3>Something here</h3> <p id="copythisone">Copy this other text</p> <script type="text/javascript"> $(document).ready(function(){ $('#copythis').click(function(){ var text = $("#copythis").get(0) var selection = window.getSelection(); var range = document.createRange(); range.selectNodeContents(text); selection.removeAllRanges(); selection.addRange(range); document.execCommand('copy'); }) }); </script>Tengo diferentes textos para copiar (no todos a la vez).
este código funciona para un solo texto. ¿Cómo trabajo para más de uno?
Acabo de cambiar esta parte y funcionó:
```var text = $(this).get(0)```Gracias a @wahwahwah
$('#copythis').on("click", function(){ console.log($(this).text() + ": you clicked on '#copythis' "); }); $('.copy').on("click", function(){ console.log($(this).text() + ": you clicked on a element with the class 'copy'"); }); $('p').on("click", function(){ console.log($(this).text() + ": you clicked on a <p> element'"); }); <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <h3>Something here</h3> <p id="copythis" class="copy">Copy this code</p> <h3>Something here</h3> <p id="copythisone" class="copy">Copy this other text</p> <h3>Something here</h3> <p id="copythisone" class="copy">Copy this other text</p> Con JQuery, puede usar .text() para obtener el contenido de un elemento p . También puede cambiar su selector para simplemente tomar el contenido de todos los elementos 'p'. El selector de ID .(#copythis) tomará el elemento relacionado solo con esa ID. El selector de clase (.copy) se adjuntará a todos los elementos con la clase "copia".
Esto te ayudará a aislar en qué se está haciendo clic. Lo que desea hacer con él, copiar el contenido al portapapeles, puede cambiar un poco la lógica dependiendo de si tiene control sobre la fuente HTML y cómo decide qué se copia y qué no.
No sé qué planeas hacer, pero básicamente esta línea
var text = $("#copythis").get(0);es donde se seleccionará el nodo p de su dom y luego se copiará el contenido de esta etiqueta p.
cambiarlo a
var text = $("#copythisone").get(0);para copiar el contenido de la segunda etiqueta p
Puede cambiar la identificación de su tercera etiqueta p a algo. como copythisonetoo
var text = $("#copythisonetoo").get(0);para obtener el contenido de la etiqueta 3rd p.
Pero por definición, una identificación debe ser única en su documento. Consulte este enlace: https://www.w3schools.com/html/html_id.asp#:~:text=The%20id%20attribute%20specifies%20a,element%20with%20the%20specific%20id.
Puede crear un método con un parámetro para copiar el texto o una identificación.
Con algo de información adicional y su caso de uso determinado, probablemente podamos ayudarlo más.