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 :

Remplacement d'un élément par son innerHTML


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 374
    Billets dans le blog
    8
    Par défaut Remplacement d'un élément par son innerHTML
    Bonjours a tous
    tout est dans le titre
    dans une boucle je remplace les elements par leur innrHTML si ceux ci n'ont pas d'attribut visiblement avec replaceChild il doit y avoir quelque chose qui m’échappe

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    var colhtml = balisefont.getElementsByTagName("FONT"); 
     for (var i = 0; i < colhtml.length; i++) {
                if (colhtml[i].innerHTML == "") {
                 balisefont.removeChild(colhtml[i]);
                }
                   if(!colhtml[i].hasAttributes() && colhtml[i]!=balisefont){
                   var noeud=document.createTextNode (colhtml[i].innerHTML);
                   //balisefont.replaceChild(noeud,colhtml[i]);//ne fonctionne pas 
                   }   
     
     }
    quelqu'un sait comment on fait ?
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  2. #2
    Membre très actif
    Homme Profil pro
    bricoleur par les mots
    Inscrit en
    Avril 2015
    Messages
    732
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 80
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : bricoleur par les mots
    Secteur : Distribution

    Informations forums :
    Inscription : Avril 2015
    Messages : 732
    Par défaut
    jour

    je vois deux problemes le premier c'est que tu supprime une balise fonte et que ensuite tu recupere son contenu alors qu'elle est supprimé l deuxieme probleme c'est qu'en supprimant une balise la valeur colhtml.length est diminié de 1 mais i reste pareille il faudrait diminué i de 1 i--

  3. #3
    Membre émérite
    Femme Profil pro
    Autre
    Inscrit en
    Janvier 2017
    Messages
    340
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Autre

    Informations forums :
    Inscription : Janvier 2017
    Messages : 340
    Par défaut
    Bonjour,
    La liste des éléments va se mettre à jour au fur et à mesure, la longueur aussi, il est donc plus simple de parcourir en sens inverse.
    Dans ce style :
    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
    var ob_;
    var colhtml=balisefont.getElementsByTagName("FONT");
    var i=colhtml.length;
    while(--i>=0)
    	{
    	ob_=colhtml[i];
    	if(ob_.innerHTML==="")
    		{
    		balisefont.removeChild(ob_);
    		}
    	else if(!ob_.hasAttributes())
    		{
    		balisefont.replaceChild(document.createTextNode(ob_.innerHTML),ob_);
    		}
    	}
    J'ai vu le message de melka one après coup : oui il a raison.

  4. #4
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 374
    Billets dans le blog
    8
    Par défaut re
    merci messieurs dames effectivement ça m'avait échappé des la première suppression i n'est plus bon

    donc si je sépare la suppression et le replacement j'aurais toujours un soucis avec le replacement des le premier replacement non?

    c’était la dernière chose de ma fonction shadow a faire je vais quand mémé pas repartir dans la manipulation du string de l'innerHTML j'avais réussi a faire sauter tout ça
    c'est bien dommage
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  5. #5
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 374
    Billets dans le blog
    8
    Par défaut re
    loralina
    ton model ne fait pas le job pour le replace
    Nom : demo2.gif
Affichages : 593
Taille : 173,6 Ko
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  6. #6
    Membre émérite
    Femme Profil pro
    Autre
    Inscrit en
    Janvier 2017
    Messages
    340
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Autre

    Informations forums :
    Inscription : Janvier 2017
    Messages : 340
    Par défaut
    Testons avec des exemples alors :
    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
    <div id="test">
    	<font color="red">ligne 1</font>
    	<a>lien</a>
    	<font color="red"></font>
    	<font>ligne 2</font>
    	<font color="red">ligne 3</font>
    	<font>ligne 4</font>
    </div>
    <script>
    var ob_;
    var balisefont=document.getElementById("test");
    var colhtml=balisefont.getElementsByTagName("font");
    var i=colhtml.length;
    while(--i>=0)
    	{
    	ob_=colhtml[i];
    	if(ob_.innerHTML==="")
    		{
    		balisefont.removeChild(ob_);
    		}
    	else if(!ob_.hasAttributes())
    		{
    		balisefont.replaceChild(document.createTextNode(ob_.innerHTML),ob_);
    		}
    	}
    console.log(balisefont.innerHTML);
    /*
    	<font color="red">ligne 1</font>
    	<a>lien</a>
     
    	ligne 2
    	<font color="red">ligne 3</font>
    	ligne 4
    */
    </script>
    La sortie est-elle conforme à l'objectif ?

  7. #7
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 374
    Billets dans le blog
    8
    Par défaut re
    lorina je pense avoir compris ce qui se passe

    en effet apres avoir repondu j'ai mis un alert a chaque tour de boucle

    et la premiere fois que je lance la boucle ca fait rien sauf les vides
    je relance une 2d fois et la ca m'en fait un
    je le relance une 3 eme fois ca me fait le 2 d
    et ainsi de suite par le meme nombre de colhtml.length
    demo en image
    Nom : demo2.gif
Affichages : 589
Taille : 560,5 Ko
    autrement dis il me faut une sur boucle du même accabit que la while donc un while et un le while a l’intérieur ca fait pas beaucoup ca non?
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  8. #8
    Membre émérite
    Femme Profil pro
    Autre
    Inscrit en
    Janvier 2017
    Messages
    340
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Autre

    Informations forums :
    Inscription : Janvier 2017
    Messages : 340
    Par défaut
    Le plus simple serait de poster un exemple avec juste le code utile.
    Est-ce que dans l'exemple que je montre, le résultat est celui attendu ?

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

Discussions similaires

  1. [SimpleXML] et recherche d'un élément par son attribut
    Par Tutotictac dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 28/03/2009, 16h39
  2. Comment remplacer un resultat numérique par son libellé ?
    Par bds2006 dans le forum Bases de données
    Réponses: 3
    Dernier message: 16/06/2006, 11h03
  3. [XSLT ]remplacement d un caractere par son code
    Par luta dans le forum XSL/XSLT/XPATH
    Réponses: 3
    Dernier message: 02/09/2005, 16h26
  4. Réponses: 2
    Dernier message: 10/05/2004, 11h20

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