Estoy creando una extensión que requiere copiar al portapapeles, pero no quiero tener 18 funciones diferentes que hagan (prácticamente) exactamente lo mismo.
Esta es la función que escribí:
function copyS1_1() { var letter_to_copy = document.getElementById('textarea-S1-1'); letter_to_copy.select(); navigator.clipboard.writeText(letter_to_copy.value); } function copyS1_2() { var letter_to_copy = document.getElementById('textarea-S1-2'); letter_to_copy.select(); navigator.clipboard.writeText(letter_to_copy.value); }Cada función se llama 'copyS#_#' para 'Sección' y luego el número en esa sección. No quiero tener 18 de estos, así que estoy buscando una manera de simplificarlo a 3 funciones (una para cada Sección, hay 3).
Puede hacer esto con literales de plantilla y argumentos de función.
function copyFuncForAny(num1, num2) { var letter_to_copy = document.getElementById(`textarea-S${num1}-${num2}`); letter_to_copy.select(); navigator.clipboard.writeText(letter_to_copy.value); } copyFuncForAny(1, 1); copyFuncForAny(1, 2);Podrías agregar un parámetro:
function copyS1(id) { var letter_to_copy = document.getElementById('textarea-S1-' + id); letter_to_copy.select(); navigator.clipboard.writeText(letter_to_copy.value); }Usar así:
copyS1(1) copyS1(2) ...es simple solo tu propia función como esta
function copyText(id) { var letter_to_copy = document.getElementById(id); letter_to_copy.select(); navigator.clipboard.writeText(letter_to_copy.value); }úsalo tantas veces como quieras.