2011-01-28 3 views
0

Vu le code suivant:Comment sélectionner une div parente en html en utilisant jQuery?

<div class="parent"> 
    <div id="div1"></div> 
    <div id="div2"> 
<div>Elemnt is here</div> 
</div> 
    </div> 

$("#rembook").live('click', function() { 

      var cur = $(this); 
      var ID = cur.attr('class').substring(4); 
        cur.parent('.div').fadeOut('slow'); 

      }); 

Je veux cacher la div parent lorsque quelqu'un clique sur eux. Le code que j'utilise pour masquer ne fonctionne pas. Y a-t-il d'autres astuces pour bien faire ça dans jQuery?

Répondre

0

avez-vous essayé $.parent("div1")

1

quelque chose comme

$(this).parent() 
2

Si tel était votre code exact il y a plusieurs erreurs.

$("#rembook") Ceci ne sélectionnera rien car il n'y a aucun objet dans le code HTML avec l'ID rembook.

Considérant qu'il était juste une erreur ici dans l'exemple (où je suppose que ce doit être # div1, ou # div2), un autre problème est

cur.attr('class').substring(4) 

Le cur variiable, qui devrait être div1, n » t avoir un attribut de classe, donc cur.attr('class') sera vide, et cur.attr('class').substring(4) jettera une erreur qui vous empêchera le code JavaScript de fonctionner.

Enfin, cette partie du code cur.parent('.div') ne sélectionnez rien que vous la sélectionnez l'élément parent qui a une classe div (exemple <div class='div>) où il aurait dû être

cur.parent('div').fadeOut('slow'); 

Ou

cur.parent().fadeOut('slow'); 
2

Tout d'abord, #rembook n'est pas dans votre exemple de code, donc je ne vois pas pourquoi cela devrait fonctionner.

Deuxièmement, à l'exception de parent(), il se peut que vous ayez besoin de closest(), dans le cas où l'élément que vous devez cacher n'est pas un parent immédiat et se trouve plus haut dans l'arbre dom.

1

Je suppose que votre code HTML comme ceci:

<div class="parent"> 
    <div id="div1">Test</div> 
    <div id="div2">Test</div> 
    <div id="rembook">Button</div> 
</div> 

et votre question est de cacher parent d'identité rembook.

Vous pouvez utiliser la méthode parent:

$("#rembook").live('click', function() { 

     var cur = $(this);    
       cur.parent().fadeOut('slow'); 

     }); 

L'espoir peut aider ..

Questions connexes