Foros del Web » Programando para Internet » Javascript »

[SOLUCIONADO] acceder a los hijos de los hijos de un elemento

Estas en el tema de acceder a los hijos de los hijos de un elemento en el foro de Javascript en Foros del Web. Buenas noches compañeros del foro. estoy haciendo una pagina web y por mas que he tratado de resolver la siguiente duda no lo he logrado. ...
  #1 (permalink)  
Antiguo 27/04/2016, 18:23
 
Fecha de Ingreso: mayo-2013
Ubicación: bogota
Mensajes: 157
Antigüedad: 11 años, 6 meses
Puntos: 2
acceder a los hijos de los hijos de un elemento

Buenas noches compañeros del foro.
estoy haciendo una pagina web y por mas que he tratado de resolver la siguiente duda no lo he logrado.

Código HTML:
Ver original
  1. <div id="divCotizacion" style=" display: block">
  2.             <fieldset id="campoMayor"><legend>COTIZACION</legend>
  3.                 <fieldset id="campo1">
  4.                     <legend>Camisas<input type="checkbox" id="check1" name="camisas" ></legend>
  5.                   <div id="div1">
  6.                       <p>cantidad <input type="text" size="3" name="cant1" id="cant1" value="hola"></p>
  7.                   </div>
  8.               </fieldset>
  9.               <fieldset id="campo2">
  10.                   <legend>Chaquetas<input type="checkbox" id="check2" name="chaquetas"></legend>
  11.                   <div id="div2">
  12.                       <p>Jean <input type="text" size="3" style="margin-left: 5px" name="cant2" id="cant2"   ></p>
  13.                       <p>Dril <input type="text" size="3" style="margin-left: 8px" name="cant3" id="cant3" ></p>
  14.                       <p>Paño <input type="text" size="3" style="margin-left: 3px" name="cant4" id="cant5"></p>
  15.                       <p>Sport 3/4 <input type="text" size="3" style="margin-left: 3px" name="cant6" id="cant6"></p>
  16.                       <p>Paño 3/4 <input type="text" size="3" style="margin-left: 3px" name="cant7" id="cant7"></p>
  17.                       <p>Gaban <input type="text" size="3" style="margin-left: 3px" name="cant8" id="cant8"</p>
  18.                       <p>Acolchada <input type="text" size="3" style="margin-left: 5px" name="cant9" id="cant9"></p>
  19.                       <p>Plumas <input type="text" size="3" style="margin-left: 8px" name="cant10" id="cant10"></p>
  20.                       <p>Cuero <input type="text" size="3" style="margin-left: 3px" name="cant11" id="cant11"></p>
  21.                       <p> con Capota <input type="text" size="3" style="margin-left: 8px" name="cant12" id="cant12"></p>
  22.                       <p> Gamusa <input type="text" size="3" style="margin-left: 3px" name="cant13" id="cant13"></p>
  23.                   </div>
  24.               </fieldset>  
  25. </div>

Nesecito hacer que el cliente haga su cotizacion el mismo y cuando le de aceptar,
la pagina despues le haga un listado de las prendas que enviò y su cantidad.
por ejemplo.


¡¡usted envio
6 camisas
3 chaquetas
2 cobijas
¡¡

pero para esto tengo que acceder a los nodos que se encuentran en el fieldset(ID:campoMayor). Y es aqui en donde estoy trancado por que aun no he podido acceder a los elementos de tipo (input text), ni siquiera me dice cuantos hijos tiene cada fieldset que se encuentra dentro del elemento FIELDSET(campoMayor).

Este es el codigo Javascript (DHTML):

Código Javascript:
Ver original
  1. function inicio(){
  2.     var campoMayor=document.getElementById("campoMayor");//FIELDSET QUE TIENE LA INFORMACION NESEZARIA
  3.  
  4.    //RECORREMOS TODOS LOS HIJOS DE campoMayor
  5.    for(var i=0;i<campoMayor.childNodes.length;i++){
  6.        //SI TIENE ALGUN HIJO DE TIPO FIELDSET
  7.       if(campoMayor.childNodes[i].nodeName=="FIELDSET"){
  8.           var campoActual=campoMayor.childNodes[i];
  9.           //MOSTRAR CUANTOS HIJOS TIENE CADA NODO VISITADO
  10.           alert(campoActual.childNodes[i].length);
  11.       }
  12.    }  
  13. }
Con este codigo solo me dice la cantidad de hijos que tiene el primero
pero en verdad son 2 FIELDSET hijo del FIELDSET(campoMayor).

Última edición por dacroma; 27/04/2016 a las 18:54
  #2 (permalink)  
Antiguo 28/04/2016, 08:29
Avatar de PIRRUMAN  
Fecha de Ingreso: febrero-2006
Ubicación: Monterrey, Nuevo León
Mensajes: 633
Antigüedad: 18 años, 9 meses
Puntos: 53
Respuesta: acceder a los hijos de los hijos de un elemento

si quieres recorrer todos los campos y ver el valor que tienen te puede servir esto:
Código Javascript:
Ver original
  1. function inicio(){
  2.         var campoMayor=document.getElementById("campoMayor");//FIELDSET QUE TIENE LA INFORMACION NESEZARIA
  3.        //RECORREMOS TODOS LOS HIJOS DE campoMayor
  4.        for(var i=0;i<campoMayor.elements.length;i++){
  5.            //SI TIENE ALGUN HIJO DE TIPO FIELDSET
  6.           if(campoMayor.elements[i].type=="fieldset"){
  7.           alert('fielset id ='+campoMayor.elements[i].id);
  8.           for(var j=0;j<campoMayor.elements[i].elements.length;j++){
  9.           console.log(campoMayor.elements[i].elements[j]);
  10.           if(campoMayor.elements[i].elements[j].type=="text"){
  11.          
  12.           alert('input text id='+campoMayor.elements[i].elements[j].id);
  13.           alert('y valor='+campoMayor.elements[i].elements[j].value);
  14.          
  15.           }
  16.          
  17.           }
  18.          
  19.              
  20.           }
  21.        }  
  22.     }
__________________
“Prefiero ser un tonto momentaneo que un eterno ignorante”
“¡El éxito es resultado de los aciertos,los aciertos resultado de la experiencia y la experiencia resultado de los errores!”
  #3 (permalink)  
Antiguo 28/04/2016, 16:39
 
Fecha de Ingreso: mayo-2013
Ubicación: bogota
Mensajes: 157
Antigüedad: 11 años, 6 meses
Puntos: 2
Respuesta: acceder a los hijos de los hijos de un elemento

Cita:
Iniciado por PIRRUMAN Ver Mensaje
si quieres recorrer todos los campos y ver el valor que tienen te puede servir esto:
Código Javascript:
Ver original
  1. function inicio(){
  2.         var campoMayor=document.getElementById("campoMayor");//FIELDSET QUE TIENE LA INFORMACION NESEZARIA
  3.        //RECORREMOS TODOS LOS HIJOS DE campoMayor
  4.        for(var i=0;i<campoMayor.elements.length;i++){
  5.            //SI TIENE ALGUN HIJO DE TIPO FIELDSET
  6.           if(campoMayor.elements[i].type=="fieldset"){
  7.           alert('fielset id ='+campoMayor.elements[i].id);
  8.           for(var j=0;j<campoMayor.elements[i].elements.length;j++){
  9.           console.log(campoMayor.elements[i].elements[j]);
  10.           if(campoMayor.elements[i].elements[j].type=="text"){
  11.          
  12.           alert('input text id='+campoMayor.elements[i].elements[j].id);
  13.           alert('y valor='+campoMayor.elements[i].elements[j].value);
  14.          
  15.           }
  16.          
  17.           }
  18.          
  19.              
  20.           }
  21.        }  
  22.     }
lo probe y tampoco. No se ejecutò el alert.

para clarificar el codigo que pusiste lo voy a poner un poco mas claro y me dices
si lo estoy haciendo mal.

Código Javascript:
Ver original
  1. function inicio(){
  2.         var campoMayor=document.getElementById("campoMayor");//FIELDSET QUE TIENE LA INFORMACION NESEZARIA
  3.  
  4.        //RECORREMOS TODOS LOS HIJOS DE campoMayor
  5.        for(var i=0;i<campoMayor.childNodes.length;i++){
  6.  
  7.            //SI TIENE ALGUN HIJO DE TIPO FIELDSET
  8.           if(campoMayor.childNodes[i].type=="fieldset"){
  9.  
  10.  
  11. //obtenemos todos los hijos de los elementos FIELDSET y los guardamos en una variable
  12.          var hijos=campoMayor.childNodes[i];
  13.  
  14.           for(var j=0;j<hijos.childNodes.length;j++){
  15.  
  16. //si los hijos tienen algun hijo de tipo <input text>
  17.           if(hijos.childNodes[j].type=="text"){          
  18. //mostrar su id y su valor
  19.           alert('input text id='+campoMayor.elements[i].elements[j].id);
  20.           alert('y valor='+campoMayor.elements[i].elements[j].value);
  21.          
  22.           }
  23.          
  24.           }
  25.          
  26.              
  27.           }
  28.        }  
  29.     }

el problema es que no entra al condicional if, en la pregunta: ¡¡si hijos tiene algun hijo de tipo <input text>, mostrar su valor¡¡.

Pido que por favor perdones mi ignorancia.

Etiquetas: elemento, hijos, input
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 08:43.