2016-06-05 1 views
3

Donc, j'ai cettejquery, obtenez 2 balises everyhing beetwen

$(".carpeta").click(function(){ 
    var elementos = $(this).nextUntil('ul.segunda').html(); 
    $('.doc-doc').html(elementos); 
}); 

Avec cette

<ul class="segunda"><span class="glyphicon glyphicon-folder-close "></span><span class="dime carpeta""></span> 
    <li class="tercera"> 
     <span class="glyphicon glyphicon-file"></span> 
     Example1 
    </li> 
    <li class="tercera"> 
     <span class="glyphicon glyphicon-file"></span> 
     Example2 
    </li> 
    <ul class="segunda"><span class="glyphicon glyphicon-folder-close "></span><span class="dime carpeta""></span> 

On clique d'abord ul je veux obtenir tout jusqu'à la prochaine ul avec la classe ".segunda" mais Je n'ai que le premier li "example1".

+0

Votre marquage n'est pas valide. https://www.w3.org/TR/html5/grouping-content.html#the-ul-element – undefined

Répondre

1

La description de votre problème est assez floue.
Désolé, je dois dire.

Je ne peux pas comprendre ce que ces classes sont pour:

  • .dime
  • .carpeta
  • .doc-doc

Mais j'ai découvert .glyphicon.
Cela m'a finalement donné une vraie indication sur ce que vous ce qu'il faut faire:
(Merci, en passant, pour me faire découvrir!)

Vous voulez basculer l'affichage des li s onclick d'une icône..oO (Quoi d'autre?)
Et vous voudrez probablement le fermer quand il est ouvert.

Voici donc un petit script pour le faire:

$(".glyphicon-folder-open, .glyphicon-folder-close").click(function(){ 

    // Toggle display of folder icons and lis 
    $(this).parent().children("span.glyphicon, li.tercera").each(function(){ 
     var correctDisplay = "block"; 
     if($(this).hasClass("glyphicon")){ // Icon need to be inline-block 
      correctDisplay = "inline-block"; 
     } 
     if($(this).css("display") == "none"){ 
      $(this).css("display",correctDisplay); 
     }else{ 
      $(this).css("display","none"); 
     } 
    }); 
}); 

Jetez un oeil à mon travail Fiddle.

J'ai ajouté un autre glyphicon pour le dossier ouvert.
J'ai aussi ajouté une classe ... Ce qui était peut-être .description l'utilisation de .carpeta ...

Voici votre HTML maintenant:

<ul class="segunda"> 
    <span class="glyphicon glyphicon-folder-close"></span> 
    <span class="glyphicon glyphicon-folder-open"></span> 
    <span class="description"> Numbers</span> 
    <li class="tercera"> 
     <span class="glyphicon glyphicon-file"></span> 
     Example 1 
    </li> 
    <li class="tercera"> 
     <span class="glyphicon glyphicon-file"></span> 
     Example 2 
    </li> 
    <li class="tercera"> 
     <span class="glyphicon glyphicon-file"></span> 
     Example 3 
    </li> 
    <li class="tercera"> 
     <span class="glyphicon glyphicon-file"></span> 
     Example 4 
    </li> 
</ul> 
<ul class="segunda"> 
    <span class="glyphicon glyphicon-folder-close"></span> 
    <span class="glyphicon glyphicon-folder-open"></span> 
    <span class="description"> Letters</span> 
    <li class="tercera"> 
     <span class="glyphicon glyphicon-file"></span> 
     Example A 
    </li> 
    <li class="tercera"> 
     <span class="glyphicon glyphicon-file"></span> 
     Example B 
    </li> 
    <li class="tercera"> 
     <span class="glyphicon glyphicon-file"></span> 
     Example C 
    </li> 
</ul> 
<br> 

Et certains CSS:

.tercera{ 
    display:none; 
} 
.glyphicon-folder-open{ 
    display:none; 
} 
.glyphicon{ 
    padding:6px 6px 0 0; 
} 
li{ 
    padding:0 0 0 10px; 
} 



Réflexion finale environ .doc-doc:

Parce que j'ai le sentiment me disant que ce sera votre prochaine question ...
Si vous voulez afficher dans un endroit div un contenu de documents ... En li clic:
Rechercher Ajax.