2010-03-09 5 views
0

J'ai une liste oredered imbriquées, ce qui im ​​animant en utilisant ce code ...pas en mesure de supprimer des listes imbriquées dans une variable jQuery

   var $li = $("ol#update li"); 
       function animate_li(){ 
        $li.filter(':first') 
         .animate({ 
         height: 'show', 
         opacity: 'show' 
         }, 500, function(){ 
         animate_li(); 
         }); 
        $li = $li.not(':first'); 
       } 
       animate_li(); 

maintenant je veux pas pour afficher ou animer les listes imbriquées (ol s) ou li s dans les ols

jeter un oeil à l'exemple here

la structure de mes ols sont

<ol> 
<li class="bar248"> 
     <div class="nli"> 
     <div class="pic"> 
      <img src="dir/anonymous-thumb.png"alt="image" /> 
     </div> 
     <div align="left" class="text"> 
     <span> 
       <span class="delete_button"><a href="#" id="test" class="delete_update">R</a></span> 

       test shouted <span class="timestamp"> 2010/02/24 18:34:26 </span> <br /> 
     this 
     </span> 
     </div> 

     <div class="clear"></div> 
     </div> 
     <div class="padd"> 

     </div> 
     <ol class="comment"> 
      <li>      
        <div>Testing </div> 
      </li> 
      <li> 
        <div>Another Test </div> 
      </li> 

     </ol> 

    </li> 

    </ol> 

Je ne suis pas en mesure de cacher les ols imbriquées en utilisant ce code ...

 $("ol#update li ol").hide(); 

Mais encore temps est consommé en les animant bien qu'ils soient cachés

Je suis pas en mesure de retirer le li imbriqué s en utilisant ce code

var $li = $("ol#update li").not("ol#update li ol"); 
$li = $li.not("ol#update li ol"); 

Jetez un oeil à ce here

Toute aide

grâce
Pradyut

Répondre

1

Avez-vous essayé la configuration de votre liste originale comme ceci:

var $li = $("ol#update > li"); 

Ce ne recevra que les <li> éléments qui sont des enfants directs de la liste <ol id="update">.

Si vous avez déjà mis en place $li sans « > », vous pouvez supprimer les « imbriqués » <li> éléments de cette liste avec « filtre »: bien

var $li = $('ol#update li'); // gets all <li> elements, even the nested ones 

// ... 

var $notNested = $li.filter('ol#update > li'); 
// or, if you prefer, 
var $notNested = $li.filter(':not(ol#update li ol li)'); 
+0

autre question .... Je peux obtenir le 1er élément en utilisant ceci ... $ li = $ ("ol # update li: eq (0)"); comment obtenir les n premiers éléments (seulement lis) en utilisant du code ... merci –

+0

Je peux obtenir les n premiers éléments en utilisant ce ... $ ("ol # update li: lt (n)"); comment puis-je obtenir les éléments entre 5 et 10. répondez s'il vous plaît ... –

+0

J'utilise $ li = $ li.filter (': lt (5)'). Filter (': gt (2)'); pour obtenir lis entre 5 et 2; y at-il d'autres meilleures méthodes ??? –

Questions connexes