2014-07-21 188 views
0

我是jQuery的新手,並且正在嘗試編寫一個腳本,該腳本將通過菜單列表運行,並根據菜單項顯示正確的背景圖像。菜單列表將隨機填充,因此需要腳本來加載正確的圖像。JQuery父子選擇

問題是,我能夠看到菜單屬於哪個項目的屬性不在列表項本身上,而是在列表項中包含的div上。我的問題是,是否可以選擇已選元素的子元素?

EG(的menuli段)

$(document).ready(function() { 

    $(menuli).each(function(index) { 

     $itemnumber = $(menuli a).attr("href"); 

     switch($itemnumber) { 

     case 1: 
      $(this).css("background-image", "image01.jpg"); 
      break; 
     } 
    }); 
}); 

這或多或少是我想拿到劇本,其中每個項目是通過迭代並根據列表項內部鏈接的href背景圖像被設置爲該列表項目。

編輯

這裏是我的html:

<div id="divMenuSportGSXSports"> 
    <div class="VociMenuSportG">         
     <div class="ImgSport" style="background-image:url(../ImgSport.ashx?IDBook=53&amp;IDSport=468&amp;Antepost=0&amp;)"> 
      <img src="buttons_void.png"> 
     </div>    
     <div class="NomeSport"> 
      <a id="h_w_PC_cSport_repSport_ctl00_lnkSport" href="/Sport/Groups.aspx?IDSport=468&amp;Antepost=0"> 
       <span title="SOCCER">SOCCER</span> 
      </a> 
     </div>   
    </div>    
    <div class="VociMenuSportG">         
     <div class="ImgSport" style="background-image:url(../ImgSport.ashx?IDBook=53&amp;IDSport=520&amp;Antepost=0&amp;)"> 
      <img src="buttons_void.png"> 
     </div>    
     <div class="NomeSport"> 
      <a id="h_w_PC_cSport_repSport_ctl01_lnkSport" href="/Sport/Groups.aspx?IDSport=520&amp;Antepost=0"> 
       <span title="BASEBALL">BASEBALL</span> 
      </a> 
     </div>   
    </div>    
    <div class="VociMenuSportG">         
     <div class="ImgSport" style="background-image:url(../ImgSport.ashx?IDBook=53&amp;IDSport=544&amp;Antepost=0&amp;)"> 
      <img src="buttons_void.png"> 
     </div>    
     <div class="NomeSport"> 
      <a id="h_w_PC_cSport_repSport_ctl02_lnkSport" href="/Sport/Groups.aspx?IDSport=544&amp;Antepost=0"> 
       <span title="CRICKET">CRICKET</span> 
      </a> 
     </div>   
    </div>    
    <div class="VociMenuSportG">         
     <div class="ImgSport" style="background-image:url(../ImgSport.ashx?IDBook=53&amp;IDSport=525&amp;Antepost=0&amp;Tema=Supabets)"> 
      <img src="buttons_void.png"> 
     </div>    
     <div class="NomeSport"> 
      <a id="h_w_PC_cSport_repSport_ctl03_lnkSport" href="/Sport/Groups.aspx?IDSport=525&amp;Antepost=0"> 
       <span title="BASKETBALL">BASKETBALL</span> 
      </a> 
     </div>   
    </div>    
    <div class="VociMenuSportG">         
     <div class="ImgSport" style="background-image:url(../ImgSport.ashx?IDBook=53&amp;IDSport=534&amp;Antepost=0&amp;)"> 
      <img src="buttons_void.png"> 
     </div>    
     <div class="NomeSport"> 
      <a id="h_w_PC_cSport_repSport_ctl04_lnkSport" href="/Sport/Groups.aspx?IDSport=534&amp;Antepost=0"> 
       <span title="ICE HOCKEY">ICE HOCKEY</span> 
      </a> 
     </div>   
    </div>    
    <div class="VociMenuSportG">         
     <div class="ImgSport" style="background-image:url(../ImgSport.ashx?IDBook=53&amp;IDSport=523&amp;Antepost=0&amp;)"> 
      <img src="buttons_void.png"> 
     </div>    
     <div class="NomeSport"> 
      <a id="h_w_PC_cSport_repSport_ctl05_lnkSport" href="/Sport/Groups.aspx?IDSport=523&amp;Antepost=0"> 
       <span title="TENNIS">TENNIS</span> 
      </a> 
     </div>   
    </div> 
</div> 
+0

相關的htm在哪裏湖? –

+0

你能告訴我們小提琴嗎? – zzlalani

+0

找到一個孩子,你可以使用find方法。 selectedElement.find( 'CSS-選擇器')。 –

回答

0

是的,你可以使用find

var parentElement = $('#someElement'); 
var childElement = parentElement.find('.child'); //where .child should be your child selector 

凡爲示例代碼是不明確的,我只是給了回答你的問題。

+0

所以我可以做這樣的事情? http://jsfiddle.net/MikeyWallis/k6cJ8/ – Michael

+0

是的,我認爲它應該工作。但是'find(a)'應該是'find('a')' –

+0

得到它的工作!感謝:) – Michael

0

試圖改變這一點:

$(this).css("background-image", "image01.jpg"); 

這樣:

$(this).children("div").css("background-image", "image01.jpg"); 

如果你要定位的元素的直接子,最好使用children()find()

請參閱至此:What is fastest children() or find() in jQuery?

+0

給它一個閱讀,看到我的鏈接是一個div內的div作爲列表項(這是選定的元素),我將不得不使用find()而不是children()作爲該鏈接不是直接的後代 – Michael