Foros del Web » Programando para Internet » Javascript »

[SOLUCIONADO] Repetir linea en js

Estas en el tema de Repetir linea en js en el foro de Javascript en Foros del Web. Hola mis amigos, no sé como repetir la misma linea y solo cambiarle el nombre sin necesidad de escribir tanto, es decir, no sé como ...
  #1 (permalink)  
Antiguo 24/07/2017, 19:06
Avatar de julia2021  
Fecha de Ingreso: diciembre-2014
Ubicación: Mexico
Mensajes: 152
Antigüedad: 9 años, 3 meses
Puntos: 11
Sonrisa Repetir linea en js

Hola mis amigos, no sé como repetir la misma linea y solo cambiarle el nombre sin necesidad de escribir tanto, es decir, no sé como aplicar un for en JS :(

Mi archivo funciones.js es así:
Código Javascript:
Ver original
  1. function activar_edicion_contrato() {
  2.   document.getElementById("boton_guardar").style.display    = 'inline';
  3.   document.getElementById("boton_eliminar").style.display   = 'inline';
  4.  
  5.   document.getElementById("service_1").disabled           = false;
  6.   document.getElementById("service_2").disabled           = false;
  7.   document.getElementById("service_3").disabled           = false;
  8.   document.getElementById("service_4").disabled           = false;
  9.   document.getElementById("service_5").disabled           = false;
  10.   document.getElementById("service_6").disabled           = false;
  11.   document.getElementById("service_7").disabled           = false;
  12.   document.getElementById("service_8").disabled           = false;
  13.   document.getElementById("service_9").disabled           = false;
  14.   document.getElementById("service_10").disabled           = false;
  15. }
Ahora imagínense que tengo 50 campos llamados service_n. Cómo hago para no escribir tantas veces lamisma línea ?
  #2 (permalink)  
Antiguo 24/07/2017, 21:11
Avatar de ArturoGallegos
Moderador
 
Fecha de Ingreso: febrero-2008
Ubicación: Morelia, México
Mensajes: 6.774
Antigüedad: 16 años, 1 mes
Puntos: 1146
Respuesta: Repetir linea en js

en lugar de invocar por ID intenta esto
  #3 (permalink)  
Antiguo 25/07/2017, 10:34
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: Repetir linea en js

Otra alternativa a la correcta respuesta de Arturo consiste en recorrer el conjunto de elementos a partir de la primera parte del identificador que posean todos en común; en este caso, sería "service_". Enseguida, se procede a establecer el valor de la propiedad disabled.

En el siguiente ejemplo, dicho valor será el contrario al que actualmente posea: si está deshabilitado, se habilita; y viceversa. Si deseas que el valor sea únicamente false en todos los casos, reemplázalo en lugar de !elem.disabled.

Código Javascript:
Ver original
  1. [].forEach.call(document.querySelectorAll("[id^=service_]"), function(elem){
  2.     elem.disabled = !elem.disabled;
  3. });

__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #4 (permalink)  
Antiguo 25/07/2017, 12:38
Avatar de julia2021  
Fecha de Ingreso: diciembre-2014
Ubicación: Mexico
Mensajes: 152
Antigüedad: 9 años, 3 meses
Puntos: 11
Sonrisa Respuesta: Repetir linea en js

Gracias ArturoGallegos y Alexis88, encantada con sus aportes, ambos me funcionaron perfectamente, sin embargo estoy implementando la solución del amigo Alexis88 pues tiene menos líneas y la entiendo mucho más facilita. Mil gracias !!!!. Besos a ambos
  #5 (permalink)  
Antiguo 25/07/2017, 12:52
Avatar de julia2021  
Fecha de Ingreso: diciembre-2014
Ubicación: Mexico
Mensajes: 152
Antigüedad: 9 años, 3 meses
Puntos: 11
Respuesta: Repetir linea en js

Una consulta adicional, usando la opcion de Alexis88, existe alguna manera de activa TODOSSSS los campos de manera simultanea independientemente del tipo de input que sean y del nombre que posean ?

Cita:
Iniciado por Alexis88 Ver Mensaje
Otra alternativa a la correcta respuesta de Arturo consiste en recorrer el conjunto de elementos a partir de la primera parte del identificador que posean todos en común; en este caso, sería "service_". Enseguida, se procede a establecer el valor de la propiedad disabled.

En el siguiente ejemplo, dicho valor será el contrario al que actualmente posea: si está deshabilitado, se habilita; y viceversa. Si deseas que el valor sea únicamente false en todos los casos, reemplázalo en lugar de !elem.disabled.

Código Javascript:
Ver original
  1. [].forEach.call(document.querySelectorAll("[id^=service_]"), function(elem){
  2.     elem.disabled = !elem.disabled;
  3. });


Última edición por julia2021; 25/07/2017 a las 12:57
  #6 (permalink)  
Antiguo 25/07/2017, 14:50
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: Repetir linea en js

Cita:
Iniciado por julia2021 Ver Mensaje
Una consulta adicional, usando la opcion de Alexis88, existe alguna manera de activa TODOSSSS los campos de manera simultanea independientemente del tipo de input que sean y del nombre que posean ?
Sí. Si todos los elementos a habilitar son <input>, en lugar de [id^=service_] tendrías que poner input, siempre entre comillas ya que el selector es una cadena de caracteres.

__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #7 (permalink)  
Antiguo 25/07/2017, 16:03
Avatar de julia2021  
Fecha de Ingreso: diciembre-2014
Ubicación: Mexico
Mensajes: 152
Antigüedad: 9 años, 3 meses
Puntos: 11
Respuesta: Repetir linea en js

Alexis88 eres un sol. Me funciono a la primera. Un beso grandeeeeee mua !

Etiquetas: bucle, js
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 04:23.