Ver Mensaje Individual
  #3 (permalink)  
Antiguo 19/05/2009, 09:03
Avatar de IMAC/
IMAC/
 
Fecha de Ingreso: octubre-2005
Mensajes: 738
Antigüedad: 19 años, 4 meses
Puntos: 14
Respuesta: ¿Acceder al elemento padre?

Cita:
Iniciado por buzu Ver Mensaje
parentNode debe funcionar. Usas por ejemplo el evento change del checkbox, algo parecido a:

Código javascript:
Ver original
  1. var chB = document.getElementById('idDeTuCheckbox');
  2. chB.onchange = function(){
  3.      if(this.checked = 'checked'){
  4.           this.parentNode.getElementById('idChecboxdeParentNode').cheked = '';
  5.      }else{
  6.           this.parentNode.getElementById('idChecboxdeParentNode').cheked = 'checked';
  7.      }
  8. }

Hace tiempo que no trabajo con checkbox por lo que no estoy muy fresco en el asunto de comprovar si está checado o no, pero la idea es esa.
Bueno, se me olvidó mencionar que no se el número de padres que puede haber. Es decir, que debería de coger varios padres (no se cuantos), todos los que haya por arriba.

Estoy usando un script que me coje todos los HIJOS con checkbox que hay por debajo de un LI, pero no se como hacer lo contrario...

Es decir, no se me ocurre qué puedo hacer para quedarme solo con los padres de un hijo...


Código javascript:
Ver original
  1. var padreDIV=chk;
  2.  
  3.    //este bucle son cosas mias, que hay más cosas dentro de cada <li> (divs, checkbox...etc)
  4. //que me tengo que ir saltando hasta llegar al LI padre
  5.   while( padreDIV.nodeType==1 && padreDIV.tagName.toUpperCase()!="LI" ){
  6.         padreDIV=padreDIV.parentNode;
  7.   }
  8.  
  9.     //ahora que padreDIV es el DIV, cogeremos todos sus checkboxes
  10.     var padreDIVinputs=padreDIV.getElementsByTagName("input");
  11.     for(var i=0; i<padreDIVinputs.length; i++) {
  12.         if( padreDIVinputs[i].getAttribute("type")=="checkbox" ){
  13.             padreDIVinputs[i].checked = chk.checked;
  14.         }
  15.     }

PD: he modificado el código HTML que puse en el primer post. Se me olvidaron unos cuantos <ul>