Foros del Web » Programando para Internet » Javascript »

[SOLUCIONADO] Duda con javascript y nodos html

Estas en el tema de Duda con javascript y nodos html en el foro de Javascript en Foros del Web. Hola a todos. He estado buscando como hacer esto por la web pero no he encontrado. Lo que necesito hacer es, dado un nodo del ...
  #1 (permalink)  
Antiguo 14/05/2014, 12:40
 
Fecha de Ingreso: febrero-2014
Mensajes: 55
Antigüedad: 10 años, 8 meses
Puntos: 3
Duda con javascript y nodos html

Hola a todos.

He estado buscando como hacer esto por la web pero no he encontrado.

Lo que necesito hacer es, dado un nodo del arbol html en cuestión, obtener todos los hijos de este solo si su tagName es "SPAN" por ejemplo.

Quiero hacer esto pero con una sola instrucción.

Gracias y saludos.
  #2 (permalink)  
Antiguo 14/05/2014, 13:37
Avatar de Italico76  
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 17 años, 7 meses
Puntos: 292
Respuesta: Duda con javascript y nodos html

Mira como se hacen las selecciones en JQuery.... sino con JS tradicional seria algo como:

nodo = document.getElementsByTagName("span")[0].childNodes;
__________________
Salu2!
  #3 (permalink)  
Antiguo 14/05/2014, 13:39
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 13 años
Puntos: 977
Respuesta: Duda con javascript y nodos html

Primero, verifica que el nodo padre tenga nodos hijos con el método hasChildNodes, de haberlos, obtén el conjunto de nodos hijos mediante el método childNodes. Una vez tengas dicho conjunto o colección de nodos, recórrelo con un bucle y en cada iteración, verifica el nombre del nodo mediante el método nodeName, de ser igual a SPAN (en mayúsculas), sabrás que se tratará de un elemento <span> y podrás hacer con él lo que desees.

En el siguiente ejemplo, inserto a cada <span> encontrado en un array y muestro el contenido de este último a través de la consola.

Código Javascript:
Ver original
  1. var div = document.getElementsByTagName("div")[0],
  2.     spans = [],
  3.     i = 0;
  4.  
  5. if (div.hasChildNodes()){
  6.     var children = x = div.childNodes,
  7.         total = children.length;
  8.    
  9.   for (i = 0; i < total; i++)
  10.     if (children[i].nodeName === "SPAN")
  11.       spans.push(children[i]);
  12. }
  13.  
  14. console.log(spans);

En detalle:



Saludos
__________________
«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

Etiquetas: html, nodos
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 19:27.