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

Bibliothèques et frameworks PHP Discussion :

[DOM] Placer une balise div vide


Sujet :

Bibliothèques et frameworks PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    conception et traitement de documents xhtml
    Inscrit en
    Août 2011
    Messages
    107
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : conception et traitement de documents xhtml
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2011
    Messages : 107
    Par défaut [DOM] Placer une balise div vide
    Bonjour,

    Je voudrais pouvoir placer une balise div vide qui sera éventuellement remplie par la suite.

    Pourquoi le code suivant ne fonctionne-t-il pas ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $div = $doc_xhtml -> createElement('div');
    $node -> parentNode -> insertBefore($div, $node -> nextSibling)
    Rien n'est inséré. Le conteneur div est inséré uniquement lorsque je définis un contenu au minimum d'un caractère :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $div = $doc_xhtml -> createElement('div', 'x')
    Comment faire pour obtenir juste ?

    Merci d'avance

    EDIT1
    La suppression du contenu du div après l'insertion de celui-ci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $div = $doc_xhtml -> createElement('div', 'x');
    $div -> nodeValue = '';
    ne marche pas non plus : le div disparaît.

  2. #2
    Membre confirmé
    Homme Profil pro
    conception et traitement de documents xhtml
    Inscrit en
    Août 2011
    Messages
    107
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : conception et traitement de documents xhtml
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2011
    Messages : 107
    Par défaut
    Pour contourner le problème, je dois créer un conteneur div ayant un contenu bidon et rendre ce contenu non visible dans la css
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    div:contains('divxxx')
    {color: white;}
    Un peu bricolo comme solution
    Comment résoudre ce petit problème ?

  3. #3
    Expert confirmé
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 344
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 344
    Billets dans le blog
    17
    Par défaut
    Cela devrait passer. Donne un bout de code fonctionnel.

  4. #4
    Membre confirmé
    Homme Profil pro
    conception et traitement de documents xhtml
    Inscrit en
    Août 2011
    Messages
    107
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : conception et traitement de documents xhtml
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2011
    Messages : 107
    Par défaut
    Merci, Séb, de ta réponse

    Le code est celui que j'ai indiqué
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $div = $doc_xhtml -> createElement('div');
    $node -> parentNode -> insertBefore($div, $node -> nextSibling);
    Pour que le div soit effectivement créé, il faut lui attribuer un contenu bidon :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $div = $doc_xhtml -> createElement('div', 'divxxx');
    $node -> parentNode -> insertBefore($div, $node -> nextSibling);

  5. #5
    Expert confirmé
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 344
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 344
    Billets dans le blog
    17
    Par défaut
    Afin qu'on puisse corriger il faudrait un extrait de script autonome et fonctionnel illustrant le comportement indésiré.

  6. #6
    Membre confirmé
    Homme Profil pro
    conception et traitement de documents xhtml
    Inscrit en
    Août 2011
    Messages
    107
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : conception et traitement de documents xhtml
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2011
    Messages : 107
    Par défaut
    Merci, Séb, pour l'intérêt que tu portes à mon petit problème.

    Le code (réduit) qui fait apparaître cette bizarrerie est le suivant (il s'agit de placer le contenu du chapitre dans un div après chaque titre h1) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    $query = "//div[@id = 'Document']//h1";
    $h1_titles = $doc_xpath -> query($query);
     
    foreach($h1_titles as $h1_title)
    {		
    $h1_toc = $doc_xhtml -> createElement('div');
    $h1_toc = $h1_title -> parentNode -> insertBefore($h1_toc, $h1_title -> nextSibling);
    }
    Le div n'apparaît pas dans le résultat :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <h1>Présentation générale</h1>
     
    <p>Texte du premier paragraphe</p>
    Par contre, le div apparaît bien si je lui attribue un contenu :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    $query = "//div[@id = 'Document']//h1";
    $h1_titles = $doc_xpath -> query($query);
     
    foreach($h1_titles as $h1_title)
    {		
    $h1_toc = $doc_xhtml -> createElement('div', 'divxxx');
    $h1_toc = $h1_title -> parentNode -> insertBefore($h1_toc, $h1_title -> nextSibling);
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <div class="Document_section">
    <h1>Présentation générale</h1><div>divxxx</div>
     
    <p>Texte du premier paragraphe</p>

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

Discussions similaires

  1. [DOM] Supprimer une balise div vide
    Par Doc_xhtml dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 26/11/2011, 11h15
  2. Comment ajouter une image dans une balise div ??
    Par liv dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 05/05/2006, 11h48
  3. impression d'une balise div
    Par nemya dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 25/01/2006, 01h27
  4. Taille d'une balise <div>
    Par Landru dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 21/11/2005, 08h43
  5. hauteur d une balise div en fonction de la résolution
    Par echecetmat dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 25/01/2005, 10h51

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