Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1433 connectés 

  FORUM HardWare.fr
  Programmation
  HTML/CSS

  [RESOLU] Javascript/DOM -> enlever des tags

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[RESOLU] Javascript/DOM -> enlever des tags

n°1400153
Ravi
Posté le 04-07-2006 à 13:00:17  profilanswer
 

Bonjour à tous,
j'aimerais dans un <div> pouvoir virer tous les tags <span> qui on un id commencant par "word" comme ceci :
 
<div id="test">
  texte texte <span id="word1">toto</span> texte texte <span id="word2"> texte texte</span>
</div>
 
et j'aimerai arriver a ca :
<div id="test">
  texte texte toto texte texte texte texte
</div>
 
Si quelqu'un sait comment arriver a ce resultat en DOM j'en serais tres reconnaissant  :jap:


Message édité par Ravi le 04-07-2006 à 16:49:13
mood
Publicité
Posté le 04-07-2006 à 13:00:17  profilanswer
 

n°1400158
afbilou
pouet your life
Posté le 04-07-2006 à 13:09:24  profilanswer
 

Code :
  1. window.onload = function () {
  2.      var parent = document.getElementById('test');
  3.      var spans = parent.getElementsByTagName('span');
  4.      for (var i=0 ; i<spans.length ; i++)
  5.      {
  6.          if (spans[i].id.match(/^word/i))
  7.              parent.removeChild(spans[i]);
  8.      }
  9.  }


 
Edit : corrections diverses


Message édité par afbilou le 04-07-2006 à 13:24:39
n°1400177
Ravi
Posté le 04-07-2006 à 13:31:28  profilanswer
 

Petite erreur, je me suis mal exprimé, je veux garder le contenu du <span>, mais je veux uniquement virer le tag ...


Message édité par Ravi le 04-07-2006 à 13:32:38
n°1400187
afbilou
pouet your life
Posté le 04-07-2006 à 13:39:15  profilanswer
 

Mon script etait faux de toute facon :

Code :
  1. window.onload = function () {
  2.      var divParent = document.getElementById('test');
  3.      var spans = divParent.getElementsByTagName('span');
  4.   var nbr = spans.length
  5.      for (var i=0 ; i<nbr ; i++)
  6.      {
  7.          if (spans[i].id.match(/^word/i)) {
  8.              divParent.removeChild(spans[i]);
  9.              i--; nbr--;
  10.          }
  11.      }
  12.  }


Ca c'est la version qui marche et qui supprimer les spans et leur contenu ... juste pour info :)

n°1400192
anapajari
s/travail/glanding on hfr/gs;
Posté le 04-07-2006 à 13:43:36  profilanswer
 

je trouve pas ça très beau l'histoire cette histoire de -- ;)
Bon c'est normal vu que spans est en fait un pointeur sur divParent.getElementsByTagName('span') et que lors de tes removeChild tu modifie ce dernier.
Et puis si j'ai tout compris Ravi veut garder le contenu...
 
J'aurais donc fait comme ça:

Code :
  1. window.onload = function () {
  2.     var parent = document.getElementById('test');
  3.     var spans = parent.getElementsByTagName('span');
  4.     while (spans.lenght)
  5.     {
  6.       if (spans[0].id.match(/^word/i))
  7.        parent.replaceChild(document.createTextNode(spans[0].nodeValue), spans[0]);
  8.     }
  9.   }


 
edit: Et en l'ecrivant je me rends comte de ma connerie :o
La ça va boucler à l'infini si il y a un span qui ne commence pas par word ... donc je vais corriger ça


Message édité par anapajari le 04-07-2006 à 13:44:48
n°1400203
afbilou
pouet your life
Posté le 04-07-2006 à 13:51:32  profilanswer
 

Code :
  1. window.onload = function () {
  2.      var divParent = document.getElementById('test');
  3.      var spans = divParent.getElementsByTagName('span');
  4.   var nbr = spans.length
  5.      for (var i=0 ; i<nbr ; i++)
  6.      {
  7.          if (spans[i].id.match(/^word/i)) {
  8.              divParent.replaceChild(document.createTextNode(spans[i].innerHTML) , spans[i]);
  9.              i--; nbr--;
  10.          }
  11.      }
  12.  }


 
J'aime bien mes -- :}

n°1400252
anapajari
s/travail/glanding on hfr/gs;
Posté le 04-07-2006 à 14:13:31  profilanswer
 

ouais bon allez pour les -- ... C'est juste que je trouve pas ça très compréhensible ;)
L'autre méthode consiste a faire un tableau avec uniquement les spans ayant pour id word*, mais ça fait 2 boucles donc ...

n°1400367
Ravi
Posté le 04-07-2006 à 15:40:37  profilanswer
 

je vais vous mettre d'accord avec ca peut etre :
 

Code :
  1. var parent = document.getElementById('test');
  2. var spans = parent.getElementsByTagName('span');
  3.     for (i=0; i<spans.length; i++) {
  4.         if ((spans[i].id).substr(0,5) == "word_" ){
  5.             parent.replaceChild(document.createTextNode(spans[i].nodeValue), spans[i]);
  6.         }
  7.     }
  8. }


 
Mais ca ne marche pas, j'ai une exception sous firefox ...

n°1400371
afbilou
pouet your life
Posté le 04-07-2006 à 15:44:50  profilanswer
 

Ravi a écrit :

je vais vous mettre d'accord avec ca peut etre


Bah raté [:petrus75]
D'autant plus que tu dis toi meme que ca ne marche pas [:petrus75]
Qu'est ce qui te convient pas dans ma derniere solution ? [:petrus75]

n°1400373
anapajari
s/travail/glanding on hfr/gs;
Posté le 04-07-2006 à 15:46:25  profilanswer
 

Est ce que tu peux nous montrer le code html et js de toute ta page html ???
 
edit: et je confirme que la solution correcte est la dernière postée par afbilou


Message édité par anapajari le 04-07-2006 à 15:47:44
mood
Publicité
Posté le 04-07-2006 à 15:46:25  profilanswer
 

n°1400458
Ravi
Posté le 04-07-2006 à 16:41:27  profilanswer
 

Autant pour moi... en fait le code que je recuperais dans le <div id="test"> contenait d'autres div ... du coup je travaillais pas avec les bons Child...
Merci bcp de votre aide ;-)


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  HTML/CSS

  [RESOLU] Javascript/DOM -> enlever des tags

 

Sujets relatifs
[résolu]fixer colonneCouper une image pour en faire une vignette[résolu]
[Résolu][PHP] Problème avec header()[Axis][SOAP/DOM] SOAPHeaderElement.appendChild()=>ClassCastException
[résolu]modification d'une colonne[résolu]Loadvars Rapide
php/javascript menu deroulant...Warning suite a utilisation d'une référence dans une méthode [RESOLU]
[irrésolvable, donc RESOLU] PB diffusion vidéo format real (avec IE)(Résolu) Filtre sur feuille verrouillée
Plus de sujets relatifs à : [RESOLU] Javascript/DOM -> enlever des tags


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR