IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

1 élément sur 2 - parentNode.removeChild()


Sujet :

JavaScript

  1. #1
    Membre averti Avatar de johnstyle
    Homme Profil pro
    Directeur technique
    Inscrit en
    Octobre 2006
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2006
    Messages : 29
    Par défaut 1 élément sur 2 - parentNode.removeChild()
    Bonjour,
    j'aurais besoin de votre aide

    J'ai crée une fonction permettant d'effacer des liens dans une page.

    L'exemple ci-dessous va parcourir tous les liens et supprimer ceux qui contiennent "toto.fr" dans href.

    Pour supprimer les éléments j'utilise gElem.parentNode.removeChild(gElem); mais le probleme c'est que cela supprime 1 élément sur 2...

    Auriez-vous une idée pour résoudre ce problème ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    <a href="http://toto.fr/lqskdljhqsd">test 1</a><br />
    <a href="http://toto.fr/lqskdljhqsd">test 2</a><br />
    <a href="http://toto.fr/lqskdljhqsd">test 3</a><br />
    <a href="http://toto.fr/lqskdljhqsd">test 4</a><br />
    <a href="http://toto.fr/lqskdljhqsd">test 5</a><br />
    <a href="http://toto.fr/lqskdljhqsd">test 6</a><br />
    <a href="http://toto.fr/lqskdljhqsd">test 7</a><br />
    <a href="http://toto.fr/lqskdljhqsd">test 8</a><br />
    <a href="http://toto.fr/lqskdljhqsd">test 9</a><br />
    <a href="http://toto.fr/lqskdljhqsd">test 10</a><br />
     
     
     
     
    <script type="application/javascript">
    		function deleteLinks(gUrl, gType, gSrc){
    			if(gType == "a" && document.links) 					var _getElements = document.links;
    			else if(document.getElementsByTagName(gType)) 		var _getElements = document.getElementsByTagName(gType);
    			if(_getElements){
    				var countScript		= _getElements.length;
    				var matchScript		= new RegExp(gUrl, "gi");
    				for(var i = 0; i < countScript; i++){
    					if(gSrc == "href" && _getElements[i].href) 	var getSource = _getElements[i].href;
    					else if(_getElements[i].src) 				var getSource = _getElements[i].src;
    					if(getSource){
    						if(getSource.match(matchScript)){
    							var gElem = _getElements[i];
    							if(gElem && gElem.parentNode)
    								gElem.parentNode.removeChild(gElem);							
    						}
    					}
    				}
    			}
    		}		
     
    		deleteLinks("toto\\.fr", "a", "href");
    </script>
    Merci

  2. #2
    Membre chevronné Avatar de htr999
    Profil pro
    Étudiant
    Inscrit en
    Février 2008
    Messages
    331
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2008
    Messages : 331
    Par défaut
    salut
    erreur (avec console d'erreurs) ligne 23:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    					if(gSrc == "href" && _getElements[i].href) 	var getSource = _getElements[i].href;
    Erreur : _getElements[i] has no properties
    Fichier source : file:///.../test47_removeChild.html
    Ligne : 23

  3. #3
    Membre averti Avatar de johnstyle
    Homme Profil pro
    Directeur technique
    Inscrit en
    Octobre 2006
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2006
    Messages : 29
    Par défaut
    oui mais justement cette erreur est déclenché à cause de gElem.parentNode.removeChild(gElem); et je e comprend pas pourquoi ...

  4. #4
    Membre averti Avatar de johnstyle
    Homme Profil pro
    Directeur technique
    Inscrit en
    Octobre 2006
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2006
    Messages : 29
    Par défaut
    J'ai trouvé !
    il faut que la boucle soit en sens inverse.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    for(var i = countScript - 1; i >= 0; i--)
    {
    ...
    }

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [SimpleXML] Suppression récalcitrante d'un élément sur l'indice reçu en GET
    Par CactO_o's dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 03/07/2008, 12h45
  2. Fixer un élément sur la page
    Par stanley dans le forum Mise en page CSS
    Réponses: 2
    Dernier message: 12/01/2008, 12h21
  3. Effacer des éléments sur click
    Par hugo1992 dans le forum AWT/Swing
    Réponses: 3
    Dernier message: 22/03/2007, 16h22
  4. [CSS]Impression : élément sur première page uniquement
    Par iubito dans le forum Mise en page CSS
    Réponses: 1
    Dernier message: 15/08/2006, 15h05
  5. 2 éléments sur une même ligne
    Par ben_iap dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 24/11/2004, 17h27

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo