• Jobs
  • About Us
  • professionals
    • Home
    • Jobs
    • Courses and challenges
  • business
    • Home
    • Post vacancy
    • Our process
    • Pricing
    • Assessments
    • Payroll
    • Blog
    • Sales
    • Salary Calculator

0

127
Views
Haga clic en el botón para copiar la columna de la celda separada por comas

Tengo una tabla HTML con una columna específica que quiero copiar al portapapeles presionando un botón. La columna contiene números de contenedor y le he dado una clase ".container"

Aquí está el código que tengo hasta ahora. HTML:

 <button onclick="copyToClipboard('.container')">Copy container #s</button>

JavaScript:

 <script> function copyToClipboard(element) { var $temp = $("<input>"); $("body").append($temp); $temp.val($(element).text()).select(); document.execCommand("copy"); $temp.remove(); } </script>

Adaptado de esta pregunta, el único cambio que hice fue convertirlo en un selector de clase en lugar de un selector de ID para obtener un rango de tabla: haga clic en el botón Copiar al portapapeles usando jQuery

Cuando hago clic en el botón, copia el contenido de todas las celdas con la clase ".container". El desafío es que copia todo el contenido de la celda sin poner espacios en el medio. Idealmente, me gustaría poner una coma, un espacio entre líneas o algún otro tipo de separación entre los diferentes contenidos de las celdas.

He probado diferentes variaciones del código, así:

 $("body"+", ").append($temp); $("body").append($temp+ ", "); $("body").append($temp).append(", ");

Pero estos no funcionan. Tengo la sensación de que la razón por la que no funciona es que la variable $temp ya contiene la cadena concatenada de todos los contenidos de la celda, por lo que es demasiado tarde para dividir cadenas en este momento.

por lo tanto, creo que el cambio debe ocurrir en esta línea:

 <button onclick="copyToClipboard('.container')">Copy container #s</button>

Pero no estoy seguro de cómo modificarlo para que recorra cada celda y agregue una coma en el medio. Cualquier ayuda es apreciada

about 3 years ago · Juan Pablo Isaza
1 answers
Answer question

0

Para separar con , debe ejecutar un ciclo a través de los td s. Puede mapear todo el texto tds y unirlo con , .

 $(element).find('td').map(function(){ return $(this).text(); }).get();

Vea el fragmento a continuación:

 function copyToClipboard(element) { var $temp = $("<input>"); $("body").append($temp); //Added below code; var cellValues = $(element).find('td').map(function(){ return $(this).text(); }).get(); var allCellValues = cellValues.join(','); //Added above code; $temp.val(allCellValues).select(); document.execCommand("copy"); $temp.remove(); console.log(allCellValues); }
 <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <table> <tr class="container"><td>1</td><td>2</td><td>3</td><td>4</td><td>5</td></tr> </table> <button onclick="copyToClipboard('.container')">Copy container #s</button>

Puedes probarlo aquí también.

about 3 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Our process Sales
Legal
Terms and conditions Privacy policy
© 2025 PeakU Inc. All Rights Reserved.

Andres GPT

Recommend me some offers
I have an error