2010-10-12 2 views
1

En utilisant jQuery je dois sélectionner des éléments qui sont:
sous le « menu » DIV seulement
et sont des éléments DT
ET sont suivies par un élément DD
sélecteurs de jQuery - comment sélectionner des éléments sur plusieurs critères, y compris le type de leur « suivant » élément

Dans cet exemple HTML J'voudrais seulement pour sélectionner ids "select_me1" et "select_me2"

<html><body> 
    <div id="menu"> 
     <dl> 
      <dt id="dont_select1"><a href="#">don't 1</a></dt> 
     </dl> 
     <dl> 
      <dt id="dont_select2"><a href="#">don't 2</a></dt> 
     </dl> 
     <dl> 
      <dt id="dont_select3"><a href="#">don't 3</a></dt> 
     </dl> 
     <dl> 
      <dt id="select_me1"><a>select me 1</a></dt> 
      <dd id="community-sub"> 
       <ul> 
        <li><a href="#">Sub 1</a></li> 
        <li><a href="#">Sub 2</a></li> 
        <li><a href="#">Sub 3</a></li> 
       </ul> 
      </dd> 
     </dl> 
     <dl> 
      <dt id="select_me2"><a>select me 2</a></dt> 
      <dd id="state-sub"> 
       <ul> 
        <li><a href="#">Sub 4</a></li> 
        <li><a href="#">Sub 5</a></li> 
        <li><a href="#">Sub 6</a></li> 
       </ul> 
      </dd> 
     </dl> 
    </div> 
    <div id="other"> 
     <dl> 
      <dt id="else1"><a href="#">else 1</a></dt> 
     </dl> 
     <dl> 
      <dt id="else2-main"><a>else 2</a></dt> 
      <dd id="else2-sub"> 
       <ul> 
        <li><a href="#">Sub 1</a></li> 
        <li><a href="#">Sub 2</a></li> 
       </ul> 
      </dd> 
     </dl> 
    </div> 
</body> 
</html> 

S'il vous plaît aider! Merci.

Répondre

3

Vous pouvez aller un peu plus en arrière ici, comme ceci:

​$("#menu dd").prev("dt") 

You can test it out here. Cela va à #menu en utilisant un #ID selector, trouve tous descendant<dd> éléments avec un element selector puis utilise .prev() pour revenir au frère <dt> qui le précède immédiatement, s'il y en a un.

+0

Trop lent à nouveau;) .... +1 –

+0

Merci. Travaillé parfaitement. –

+0

Pourquoi est ce "this" dans $ ("# menu dd"). Prev ("dt"). Chaque {} me donne un tableau de longueur 1 plutôt que l'élément dt lui-même ?? –

0

Ceci sélectionnera les éléments <dd> qui ont un élément <dt> précédent. Ensuite, il utilise .prev() pour revenir à son frère <dt>.

$('#menu dt + dd').prev() 
Questions connexes