2010-10-12 40 views
1

使用jQuery我需要選擇的元素類型元素:在「菜單」
DIV只有
並DT元素
AND之後是DD元素
jQuery選擇 - 如何選擇多個條件,包括他們的「下一個」元素的

在此示例HTML我只會想選擇IDS 「select_me1」 和 「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> 

請幫幫忙!謝謝。

回答

3

你可以去這裏有點落後,像這樣:

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

You can test it out here。這將轉到#menu使用#ID selector,找到所有descendant<dd>元素與element selector,然後使用.prev()回到剛剛在它之前的<dt>兄弟,如果有的話。

+0

再次太慢了;).... +1 – 2010-10-12 15:38:23

+0

謝謝。完美工作。 – 2010-10-12 16:47:54

+0

爲什麼會在$(「#menu dd」)。prev(「dt」)。each {}中給出一個長度爲1的數組而不是dt元素本身? – 2010-10-12 19:05:57

0

這將選擇具有以前的<dt>元素的<dd>元素。然後它使用.prev()來回溯到它的兄弟<dt>

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