2012-09-28 51 views
1
<div class='main'> 

<div> 
     <div> 
      <button></button> 
     </div> 
</div> 
<ul>  
     <li> 
      <img /> 
     </li> 

     <li> 
      <h1></h1> 
     </li> 

</ul> 
<div> 
     <span> 
      <a href=""></a> 
     </span> 
</div> 

</div> 

問題:我想選擇按鈕,img,h1和a。在jQuery中執行此操作的唯一方法是$(.main).children()。children()。children()。 但有沒有另一種方法來選擇jQuery中的這些元素? (不使用這麼多次的孩子())jQuery children()會更深

+2

'$(「。main」)。find(「button,img,h1,a」)'將選擇''.main「下任何級別的所有元素 - 但是你的意思是你想要它們任何級別,或正好三個級別下降? – nnnnnn

+2

'$(「img,h1,a,button」,「.main」)' –

+0

@nnnnnn's更簡單。對於image - '$('li img')。each(function(o){....})'。對於'h1' - '$('li h1')。each(function(o){....})'。對於anchor - '$('span a')。each(function(o){....})'。 –

回答

0
<div class="main"> 
    <div> 
     <div> 
     <button class="mustSelect"></button> 
     </div> 
    </div> 
    <ul> 
     <li> 
     <img class="mustSelect" /> 
     </li> 
     <li> 
     <h1 class="mustSelect"></h1> 
     </li> 
    </ul> 
    <div> 
     <span> 
     <a href="" class="mustSelect"></a> 
     </span> 
    </div> 

將類(class =「mustSelect」)添加到您需要的元素。然後在js中你可以參考下面這些元素。

$('.mustSelect') 

如果您無法添加一個類,請使用以下

$("button, img , h1 , a ", ".main") 

它告訴jQuery來選擇任何按鈕,IMG,H1,一個在。主要類。

希望這會幫助你。如果您有任何問題,請不要猶豫,問。謝謝

3

你可以使用.find()方法:

$('.main').find() 
2

其實,如果你想選擇你的「div容器」內的所有葉子節點,你可以嘗試

$(".main :not(:has(*))") 

這將選擇沒有子元素的「div容器」內的任何級別的任何元素。