2011-11-11 31 views
0

在列表中,這是我的html代碼:使用jQuery選擇<a> ...頭痛,因爲2小時

<ul class="choix-kit_modele_list"> 
     <li class="first modele"><a href="">Modèle :</a></li> 
     <li><a href="">A1</a></li> 
     <li><a href="">A3</a> 
      <ul class="choix-kit_type_list"> 
       <li class="first type"><a href="">Type :</a></li> 
       <li><a href="">3 Portes - 1999 à 2003</a></li> 
       <li><a href="">3 Portes - 2004 à Aujourd'hui</a></li> 
       <li><a href="">5 Portes - 1999 à 2003</a></li> 
       <li><a href="">Cabriolet - 2008 à Aujourd'hui</a></li> 
       <li class="last"><a href="">Sportback - 2005 à Aujourd'hui</a></li> 
      </ul> 
     </li> 
     <li class="last"><a href="">A4 Berline</a></li> 
    </ul> 

我想只選擇列表中的第一個層次,所以這是我的代碼,至極全部選擇:

$('.choix-kit_modele_list li > a').not('.choix-kit_type_list li a').each(function(i){ 
    $(this).css({width: 100}); 
}); 

所以我說,「選擇我的第一UL的,但不是他的UL的孩子,通過由各自的班級叫他們那麼,什麼是錯誤的,我的代碼,請

?謝謝N使您的幫助

+0

謝謝,你能解釋更多細節你的代碼是如何工作的,以及爲什麼我的代碼是錯誤的?再次感謝 – JojoLapin45

+0

您可能想要接受答案 - 這是確保人們在未來也想回答您的問題的好方法。 –

回答

3

子選擇應該是.choix-kit_modele_listli之間,因爲每個ali各級孩子:

$('.choix-kit_modele_list > li a').each(function(i) { 
    $(this).css({ width: 100 }); 
}); 
1

變化:

$('.choix-kit_modele_list li > a').not('.choix-kit_type_list li a') 

到:

$('.choix-kit_modele_list > li > a') 
1
$('ul.choix-kit_modele_list > li > a').each(function(){ 
    $(this).css("font-size", "26px"); 
}); 

您的代碼無法正常工作,因爲您的選擇器應用於每個鏈接,該鏈接是您的HTML中每個<li>的直接後代,這是您的第一個ul的直接後代。

在選擇器中的li部分之前添加>確保您僅在<li>上操作 - 作爲ul的直接後代的項目,從而阻止它進入第二個ul。

希望清除它。