Foros del Web » Programando para Internet » Javascript »

Capturar elementos que estan en una celda

Estas en el tema de Capturar elementos que estan en una celda en el foro de Javascript en Foros del Web. Hola, queria preguntarles como puedo hacer para capturar a los elementos que estan en un celda, las celdas las voy creando dinamicamente con el DOM ...
  #1 (permalink)  
Antiguo 06/02/2007, 16:11
 
Fecha de Ingreso: diciembre-2006
Mensajes: 381
Antigüedad: 17 años, 3 meses
Puntos: 2
Capturar elementos que estan en una celda

Hola, queria preguntarles como puedo hacer para capturar a los elementos que estan en un celda, las celdas las voy creando dinamicamente con el DOM asi como a todos los elementos que hay en ella, en las demas filas de la tabla tambien estan los mismos elementos pero con diferente nombre e ID, he tratado pero no se como hacerlo, por ejemplo para llamar a la fila yo hago esto, var c=elemento.parentNode.parentNode, y si con esto ya tengo acceso a la fila, pero como puedo hacerlo a reves, intente con childNode, pero aun no me resulta.
  #2 (permalink)  
Antiguo 06/02/2007, 16:29
Avatar de JavierB
Colaborador
 
Fecha de Ingreso: febrero-2002
Ubicación: Madrid
Mensajes: 25.052
Antigüedad: 22 años, 2 meses
Puntos: 772
Re: Capturar elementos que estan en una celda

Hola StrikeFreedom

childNodes debería funcionarte

También puedes probar con getElementsByTagName('*')

Saludos,
  #3 (permalink)  
Antiguo 06/02/2007, 16:42
 
Fecha de Ingreso: diciembre-2006
Mensajes: 381
Antigüedad: 17 años, 3 meses
Puntos: 2
Re: Capturar elementos que estan en una celda

Código PHP:
var row document.getElementById('fila');

var 
fi=row.childNodes('input');

alert(fi); 
el mensaje que me muestra es : [object]
supongo que esta bien,
pero si en esa fila tengo varios inputs como hago para llamar a uno especifico y tambien a sus propiedades?

Última edición por StrikeFreedom; 06/02/2007 a las 16:57
  #4 (permalink)  
Antiguo 06/02/2007, 16:58
Avatar de derkenuke
Colaborador
 
Fecha de Ingreso: octubre-2003
Ubicación: self.location.href
Mensajes: 2.665
Antigüedad: 20 años, 6 meses
Puntos: 45
Re: Capturar elementos que estan en una celda

Buff... no te gustaba el color por defecto para un post del foro eh?

Debes recorrer todos los hijos. Es decir, childNodes es un array, el tercer elemento es childNodes[2] etcétera.

Supongo que si quieres recoger el tercer input, deberás hacer un bucle recorriendo los hijos, y contando la cantidad de inputs que te vas encontrando. Al tercero paras y ése será el elemento buscado.

También puedes arreglartelas con objeto.getElementsByTagName("input"), creo que eso funciona.

Personalmente, creo que funcionaría mejor con un document.getElementById("")


Un saludo
__________________
- Haz preguntas inteligentes, y obtendrás más y mejores respuestas.
- Antes de postearlo Inténtalo y Búscalo.
- Escribe correctamente tus mensajes.
  #5 (permalink)  
Antiguo 06/02/2007, 17:11
 
Fecha de Ingreso: diciembre-2006
Mensajes: 381
Antigüedad: 17 años, 3 meses
Puntos: 2
Re: Capturar elementos que estan en una celda

Cita:
Buff... no te gustaba el color por defecto para un post del foro eh?
No es eso, es que necesito saber los nombres de los inputs para cambiarles de nombre al mismo numero de la fila en la que esta, por ejemplo el input "cantidad4" esta en la fila 4, pero al momento de eliminar la fila 2 la fila 4 pasa a ser la fila 3 pero el input se queda con el nombre cantidad4, me entiendes?, necesito reordenar todos los inputs ya que eso me trae problemas en lo que estoy haciendo, es que haciendo una nota dede pedido y esa parte es la de los detalles.

Pero igual agradezco tu ayuda, voy a intentarlo.

Última edición por StrikeFreedom; 07/02/2007 a las 07:56
  #6 (permalink)  
Antiguo 07/02/2007, 01:49
Avatar de JavierB
Colaborador
 
Fecha de Ingreso: febrero-2002
Ubicación: Madrid
Mensajes: 25.052
Antigüedad: 22 años, 2 meses
Puntos: 772
Re: Capturar elementos que estan en una celda

Hola de nuevo.

Esto no lo he probado, pero creo que funcionará:

Código PHP:
var row document.getElementById('fila'); 
for (
i=0ele row.childNodes[i]; i++)
  
alert(ele.name); 
Saludos,
  #7 (permalink)  
Antiguo 07/02/2007, 09:14
 
Fecha de Ingreso: diciembre-2006
Mensajes: 381
Antigüedad: 17 años, 3 meses
Puntos: 2
Re: Capturar elementos que estan en una celda

Gracias por la ayuda, eso me dio una idea:

Código PHP:
var row document.getElementById('fila'); 
for (
i=0;ele=row.childNodes[i].childNodes[i].childNodes[i];i++)
{
alert(ele.id);

Y recien puedo acceder a los elementos,pero de una forma un poco desordenada por ejemplo, me llama al item0, y al precio1,
esos numeros son deacuerdo a la fila en la que estan, pero almenos ya tengo una idea, voy a seguir intentando.
  #8 (permalink)  
Antiguo 07/02/2007, 12:51
Avatar de derkenuke
Colaborador
 
Fecha de Ingreso: octubre-2003
Ubicación: self.location.href
Mensajes: 2.665
Antigüedad: 20 años, 6 meses
Puntos: 45
Re: Capturar elementos que estan en una celda

StrikeFreedom lo decía por que parece que cada vez que posteas lo haces de un color de fuente diferente... que.. bueno, choca un poco por decirlo así.


Un apunte, en los navegadores estándar (creo que en todos, por lo menos en FF) se recoge como hijo cualquier espacio dejado entre etiqueta y etiqueta. Esto es, a veces nos encontraremos con hijos que son nodos de texto y tienen como contenido un par de espacios en blanco.
__________________
- Haz preguntas inteligentes, y obtendrás más y mejores respuestas.
- Antes de postearlo Inténtalo y Búscalo.
- Escribe correctamente tus mensajes.
  #9 (permalink)  
Antiguo 07/02/2007, 14:35
 
Fecha de Ingreso: diciembre-2006
Mensajes: 381
Antigüedad: 17 años, 3 meses
Puntos: 2
Re: Capturar elementos que estan en una celda

Cita:
StrikeFreedom lo decía por que parece que cada vez que posteas lo haces de un color de fuente diferente... que.. bueno, choca un poco por decirlo así
Es la primera vez que veo que a alguien le "choca" un simple post con un color diferente.

Cita:
Un apunte, en los navegadores estándar (creo que en todos, por lo menos en FF) se recoge como hijo cualquier espacio dejado entre etiqueta y etiqueta. Esto es, a veces nos encontraremos con hijos que son nodos de texto y tienen como contenido un par de espacios en blanco.
Voy a tomarlo en cuenta.
Gracias
  #10 (permalink)  
Antiguo 07/02/2007, 15:43
 
Fecha de Ingreso: diciembre-2006
Mensajes: 381
Antigüedad: 17 años, 3 meses
Puntos: 2
Re: Capturar elementos que estan en una celda

ya pude capturar los elementos de esta forma:

Código PHP:
for (i=0;row=th.childNodes[i];i++)
{
for (
c=0;cell=row.childNodes[c];c++)
{
for (
x=0;p=cell.childNodes[x];x++)
{
alert(p.id);
}
}

Con esto ya tengo acceso a los elementos de una forma ordenada, ahora solo falta cambiarles el nombre, por el mismo numero de fila.
Ejemplo: fila1->cantidad1.
  #11 (permalink)  
Antiguo 08/02/2007, 13:19
 
Fecha de Ingreso: diciembre-2006
Mensajes: 381
Antigüedad: 17 años, 3 meses
Puntos: 2
Re: Capturar elementos que estan en una celda

Aun no logro cambiarles el nombre a los elementos, pueden ayudarme?, simplemente cambiarles el nombre por ejemplo si estan en la fila 2, que los elementos se le llamen cantidad2, precio2, etc.
  #12 (permalink)  
Antiguo 09/02/2007, 15:18
 
Fecha de Ingreso: diciembre-2006
Mensajes: 381
Antigüedad: 17 años, 3 meses
Puntos: 2
Re: Capturar elementos que estan en una celda

Lo logre, ayer pude hacerlo, pero me olvide poner el script, aca va:

Código PHP:
var th document.getElementById('th');

for (
i=0;row=th.childNodes[i];i++)
{

//primera celda
row.childNodes[0].childNodes[0].setAttribute('id','item'+i);
row.childNodes[0].childNodes[0].setAttribute('indice',i);

row.childNodes[0].childNodes[1].setAttribute('id','hitem'+i);
row.childNodes[0].childNodes[1].setAttribute('indice',i);

//segunda celda
row.childNodes[1].childNodes[0].setAttribute('id','lprecio'+i);
row.childNodes[1].childNodes[0].setAttribute('indice',i);

//tercera celda
row.childNodes[2].childNodes[0].setAttribute('id','cantidad'+i);
row.childNodes[2].childNodes[0].setAttribute('indice',i);

//cuarta celda
row.childNodes[3].childNodes[0].setAttribute('id','lsub'+i);
row.childNodes[3].childNodes[0].setAttribute('indice',i);

//quinta celda
row.childNodes[4].childNodes[0].setAttribute('id','eliminar'+i);
row.childNodes[4].childNodes[0].setAttribute('indice',i);


como ven les cambio el id y el indice que necesito esos dos datos al momento de, por ejemplo escribir una cantidad y que me muestre el subtotal mediante una funcion a la cual el envio el indice.

Ya estoy a punto de acabar con esta parte de mi proyecto
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 18:55.