begin process at 2010 03 22 02:00:31
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Javascript / DHTML / Ajax

 > 

JavaScript et le navigateur

 > 

Autre

 > 

RemoveChild capricieux


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

RemoveChild capricieux

mercredi 8 avril 2009 à 16:29:03 | RemoveChild capricieux

armata

Bonjour,

Alors voila j'ai un soucis avec un RemoveChild voici mon code (enfin version simple) :

 

<body>

<div id='toto'>

<table>

                                   <th class='classOk'>blabla</th>

</table>

<table>

                                   <th class='classRm'> blabla</th>

</table>

<table>

                                   <th class='classOk'> blabla</th>

</table>

<table>

                                   <th class='classRm'> blabla</th>

</table>

</div>

</body>

 

Mon but est de supprimer toutes les tables qui ont un th de classe 'classRm' et pour cela je comptais faire :

 

var tab=document.getElementsByTagName('table');

for (i=0;i<tab.length;i++){

var th=tab[i].getElementsByTagName('th');

            for (j=0;j<th.length;j++){

                        if (th[j].className==" classRm "){

                                   tab[i].parentNode.removeChild(tab[i]);

                                   break;

                        }

            }

}

 

Sauf que ceci n'a aucun effet sur ma page web.

 

Pour voir mes tableaux disparaître il me faut faire :

 

tab[i] .parentNode.parentNode.removeChild(tab[i].parentNode);

 

ce qui me supprime mon div et donc mes autres tableaux aussi, ce n'est donc pas ce que je souhaite.

 

Pourriez vous s'il vous plaît éclairer ma lanterne sur ceci ?



ARMATA
mercredi 8 avril 2009 à 17:23:15 | Re : RemoveChild capricieux

Zobibol

Bonjour, il semblerait qu'une petite erreur se soit glisser dans le code ;o)

var tab=document.getElementsByTagName('table');

for (i=0;i<tab.length;i++){

var th=tab[i].getElementsByTagName('th');

            for (j=0;j<th.length;j++){

                        if (th[j].className==" classRm "){

                                   tab[i].parentNode.removeChild(tab[i]);

                                   break;

                        }

            }

}

il y a des espaces dans entre les guillemets et le nom de la classe ça devrait être :

var tab=document.getElementsByTagName('table');

for (i=0;i<tab.length;i++){

var th=tab[i].getElementsByTagName('th');

            for (j=0;j<th.length;j++){

                        if (th[j].className=="classRm"){

                                   tab[i].parentNode.removeChild(tab[i]);

                                   break;

                        }

            }

}

Et la magie du javascript s'accomplie ;o)
[o-_-o]
mercredi 8 avril 2009 à 17:43:28 | Re : RemoveChild capricieux

PetoleTeam

Membre Club
Bonjour,
tu te trompes de parent
TABLE -> TBODY -> TR -> TH, la TH est au même niveau qu'une TD

function Del_Table(){
  var tab = document.getElementsByTagName('table');
  for( i=0; i< tab.length;i++){
    var th = tab[i].getElementsByTagName('th');
      for( j=0; j < th.length;j++){
        if (th[j].className == "classRm"){
          tab[i].parentNode.removeChild(tab[i]);// Ta ligne a supprimer
          th[j].parentNode.removeChild(th[j]);   // on prend le parent de la TH
          break;
        }
     }
  }
}

;O)
mercredi 8 avril 2009 à 17:45:42 | Re : RemoveChild capricieux

armata

merci de ta réponse mais non malheureusement ce n'est qu'une faute de recopie, dans mon code ces espaces n'y sont pas donc une autres idée?

ARMATA
mercredi 8 avril 2009 à 17:49:37 | Re : RemoveChild capricieux

armata

Merci mais si je ne m'abuse ton code aura pour effet de supprimer les balises 'th' alors que mon but est de supprimer les tables entières qui contiennent une balise 'th'.
oui je sais j'en demande beaucoup

ARMATA
mercredi 8 avril 2009 à 18:03:02 | Re : RemoveChild capricieux

PetoleTeam

Membre Club
Réponse acceptée !
SORRY mal lu le post...
...dans ce cas ton code est bon sauf que
tab[i].parentNode.removeChild(tab[i]);
on est d'accord cela supprime la table donc quand tu continues la boucle ici
for( i=0; i< tab.length;i++){
tab.length est décrémenté, donc il faut recalé ton i.

au final
function Del_Table(){
  var tab = document.getElementsByTagName('table');
  for( i=0; i< tab.length;i++){
    var th = tab[i].getElementsByTagName('th');
      for( j=0; j < th.length;j++){
        if (th[j].className == "classRm"){
          tab[i].parentNode.removeChild(tab[i]);
          i--; // replace l'index avant nouvel incrementation
          break;
        }
     }
  }
}


;O)
mercredi 8 avril 2009 à 18:09:01 | Re : RemoveChild capricieux

armata

Yesssss merci beaucoup de ton aide c'été bien mon problème. t'es un chef :p

ARMATA


Cette discussion est classée dans : style, false, size, mso, 0cm


Répondre à ce message

Sujets en rapport avec ce message

Spry Accordion (pb sur focus) [ par nawakator ] Bonjour,<li Dépendances entre combobox [ par cool0501 ] <link rel="Fi Problème d'affichage des form avec Ajax sous ie [ par nemo_ulysse31 ] <link rel="Fi Question sur les Frames et DIV [ par Lobb88 ] <link rel="Fi Centrer une image quelque soit la résolution ou le navigateur. [ par mquisuisje ] <link rel="Fi picdem.net télésurveillance [ par brahimzemmal ] <link rel="Fi Aiguillage de site [ par uniuc ] <link rel="Fi désactiver certaines options du menu contextuel [ par pseudodejautilis ] <link rel="Fi Soumission d'un paramètre avec ajout des paramètres présents [ par fourmiel ] Bonjour J'ai un problème de conservation des paramètres dans la navigation de mon site. J'ai une entête en jsp présent sur beaucoup de page et des lie extjs bouton [ par jeud84 ] Salut à vous tous, débutant dans le domaine je cherche à reproduire ce genre de présentation : <meta name="Generator" content="M


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mars 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,328 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales