2009-12-24 5 views
0

Cela fait un moment que je suis là et je n'arrive pas à le craquer .. J'ai du javascript qui essaie de cacher les divs frères, en plus de celui qui passe par la fonction . Voici le code html:javascript, impossible de récupérer les noeuds frères

<div id = "chat_content"> 
    <div id = "chat_content_1">This is div one</div> 
    <div id = "chat_content_2">This is div two</div> 
    <div id = "chat_content_3">This is div three</div> 
</div> 

Et voici le javascript:

function showGroup(id) 
    { 
     // show the the div that was clicked 
     var e = document.getElementById(id); 
     e.style.display = 'block'; 

     // hide the others divs under the same parent 
     var children = e.parentNode.childNodes; 
     for (var i = 0; i < children.length; i++) 
     { 
      if (children[i] != e) 
      { 
       children[i].style.display = 'none'; 
      } 
     }; 
    } 

merci! et joyeuses fêtes :)

Répondre

0

Envisagez d'utiliser jQuery. Rend la vie plus facile. Check it out here

$("div#chat_content").siblings().css("display", "none"); 
+0

merci l'homme. aussi il devrait être frères et soeurs()! – Matt

0

Y at-il une raison quelconque vous ne l'utilisez previousSibling ou nextSibling? Votre code devrait fonctionner en théorie, mais comme il ne semble pas (avez-vous vérifié votre console d'erreur?), Essayez ce qui suit qui fonctionne en utilisant une sorte d'idée iterator plutôt que d'une boucle de tableau:

// hide the others divs under the same parent 
var child = e.parentnode.firstChild; 

do 
    { 
    if (child != e) 
     { 
     child.style.display = 'none'; 
     } 
    child = child.nextSibling; 
    } 
while (child.nextSibling != null); 

I seconde la recommandation d'utiliser quelque chose comme jQuery en passant. Cela rend les choses plus faciles.

+0

hmm, il est dit que child.style n'est pas défini. Je vais donner un coup de jquery, mais avez-vous des idées pour lesquelles cela ne fonctionnera pas? Merci! – Matt

+0

Je ne sais pas quel est le problème. Cela devrait fonctionner, tout comme votre code. Peut-être qu'il n'y a pas de frères et sœurs ou que vous ciblez le mauvais élément. Ou peut-être que vous aviez du code non fonctionnel et maintenant la page n'est pas mise à jour à cause de la mise en cache? – Dustin

Questions connexes