Foros del Web » Programando para Internet » Javascript »

Asignar un índice a un nombre de variable.

Estas en el tema de Asignar un índice a un nombre de variable. en el foro de Javascript en Foros del Web. Buenas, quería saber como puedo asignarle a un nombre de variable un índice, por ejemplo: Cita: for (j=1; j<10; j++) { opcion+j = document.createElement('option'); opcion+j.value ...
  #1 (permalink)  
Antiguo 05/11/2008, 11:42
 
Fecha de Ingreso: noviembre-2008
Mensajes: 13
Antigüedad: 15 años, 5 meses
Puntos: 0
Asignar un índice a un nombre de variable.

Buenas, quería saber como puedo asignarle a un nombre de variable un índice, por ejemplo:

Cita:
for (j=1; j<10; j++) {

opcion+j = document.createElement('option');

opcion+j.value = 10;

txtoptPP+j = document.createTextNode('Hola');

}
Me da error al intentar asignarselo con el +j, no consigo encontrar la sintaxis correcta.
Espero que me hayan comprendido y que me puedan ayudar, un saludo.
  #2 (permalink)  
Antiguo 05/11/2008, 11:45
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: Asignar un índice a un nombre de variable.

Tal vez sería más fácil si directamente crearas un array.

Pero, si quieres hacerlo de esa manera sería:
Código javascript:
Ver original
  1. window["opcion" + j] = "valor";
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.

Última edición por David; 05/11/2008 a las 11:56 Razón: corrección
  #3 (permalink)  
Antiguo 06/11/2008, 03:57
 
Fecha de Ingreso: noviembre-2008
Mensajes: 13
Antigüedad: 15 años, 5 meses
Puntos: 0
Respuesta: Asignar un índice a un nombre de variable.

Hola de nuevo, en primer lugar gracias David el Grande por tu respuesta, siento decirte que no me ha funcionado, he probado la alternativa que me ofreciste, pero no me permitió asignarle el value al elemento del array, voy a explicar bien mis intenciones.

Estoy creando una página utilizando ASP que genere dinámicamente un formulario al pulsar sobre un botón, este formulario se generará llamando a una función que crea la estructura utilizando el DOM, entre los campos del formulario se encontrará un campo Select, el cual sus values y su texto los cargará de una tabla en la Base de Datos.

En el código ASP meto en una variable todos los values separados por comas como si fuera una cadena.

Cita:
valuesPP = valuesPP & rsPP("idPerfilProfesional") & ","
Y en otra variable meto todos los textos que contendrá cada option de esa Select

Cita:
perfiles = perfiles &rsPP("perfil")&","
Estas dos cadenas se las mando al archivo .js mediante una función.

Cita:
<input type = "button" onclick="generaExperiencia('<%=valuesPP%>','<%=per files%>','<%=contadorPP%>')">
<%=contadorPP%> simplemente contiene el número de registros que cargó de la BD.

Posteriormente nos vamos a la función :

Cita:
function generaExperiencia(valuesPP,perfiles,contadorPP){
Las dos cadenas que le pasamos, las cortamos y metemos cada valor en una casilla de un array, para cada variable.

Cita:
arrayvalues = valuesPP.split(',');
arrayperfiles = perfiles.split(',');
Llegados a este punto

Voy creando la estructura del formulario utilizando el DOM, llego a la Select

Cita:
selectPP = document.createElement('select');
optionPP0 = document.createElement('option');
optionPP0.value = 0;
txtOptPP0 = document.createTextNode('Selecciona');
Y llegamos al punto en que quiero crear todas las options para el select, procedentes de la Base de Datos.

Cita:
for (j=1;j<contadorPP;j++) {

window["optionPP" + j] = document.createElement('option');
window["optionPP"+ j].value = arrayvalues[j-1];
window["txtOptPP" +j] = document.createTextNode(arrayperfiles[j-1]);

}


Y posteriormente hago el montaje de las mismas.

Cita:
optionPP0.appendChild(txtOptPP0);

for (j=1;j<contadorPP;j++) {

// Aquí está el Error: El objeto no acepta esta propiedad o método
window["optionPP" + j].appendChild(["txtOptPP" + j]);
}

selectPP.appendChild(optionPP0);

for (j=1;j<contadorPP;j++) {
selectPP.appendChild(["optionPP"+j]);
}

td3.appendChild(selectPP);
Espero haberlo documentado bien y que me hayan comprendido, gracias de antemano.

He probado a hacerlo también, desde ASP a mandarle la función un String con las órdenes de crear la estructura mediante el DOM, pero parece que el DOM no acepta crear la estructura a partir de una cadena.
Esta es la otra salida que he visto posible , si saben otra salida soy todo oidos, gracias de nuevo.

Última edición por RMontes; 06/11/2008 a las 04:05
  #4 (permalink)  
Antiguo 06/11/2008, 04:21
 
Fecha de Ingreso: noviembre-2008
Mensajes: 13
Antigüedad: 15 años, 5 meses
Puntos: 0
Respuesta: Asignar un índice a un nombre de variable.

Arreglado, el problema está en que me pudieron las ansias, me había olvidado de poner el window al montar el texto sobre la option.

Cita:
MAL

for (j=1;j<contadorPP;j++) {

window["optionPP" + j].appendChild(["txtOptPP" + j]);
}

BIEN

for (j=1;j<contadorPP;j++) {

window["optionPP" + j].appendChild(window["txtOptPP" + j]);
}
Espero que esto les sirva a la gente que intente hacer algo parecido, eternamente agradecido David el Grande, que grande eres.
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 13:49.