2014-07-21 146 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