2012-11-13 53 views
4

我不知道我是否正確表達了這一點。但我有一個類似於這個HTML文檔設置。jQuery在父代中找到Div

<div id="intro_page" class="sub_page"> 

     <div class="sub_header"><img src="assets/img/intro_header.jpg" /></div> 

     <div class="video_holder"> 
      <video class="video_player"></video> 
     </div> 

     <div class="page_text"><img src="" width="1020" /></div> 


</div><!-- /intro_page --> 

<div id="spark_page" class="sub_page car_page"> 

      <div class="sub_header"><img src="assets/img/header.jpg" /></div> 

      <div class="video_holder"> 
       <video class="video_player"></video> 
      </div> 

      <ul class="car_story"> 
       <li data-text="story1_text"><img src="assets/img/story1_btn2.jpg" /></li> 
       <li><img src="assets/img/story2_btn2.jpg" /></li> 
       <li><img src="assets/img/story3_btn2.jpg" /></li> 
      </ul> 


      <div class="page_text"><img src="" width="1020" /></div> 

</div><!-- /spark_page --> 

我想針對page_text格,如果有人點擊一個car_story li。但是因爲有兩個div有page_text,我不知道如何定位與car_story ul位於同一個父div的那個div。希望這是有道理的。謝謝!

我試過類似這樣的事情,但沒有運氣。

$(".car_story li").click(function() { 

    $(this).parent().find(".page_text img").attr("src","newimage.jpg"); 

}); 

回答

10

傳中,最接近div.sub_page作爲選擇的情況下,那麼你想要的元素找

$(".car_story li").click(function() { 
    var parent = $(this).closest('.sub_page'); // find closest sub_page 
    $(".page_text img",parent).attr("src","newimage.jpg"); // find img inside of closest sub_page 
}); 
+2

+1使用最接近() – KalenGi

2
$(".car_story li").click(function() { 
    $(this).parents("div").find(".page_text > img").attr("src","newimage.jpg"); 
}); 
+0

似乎沒有爲我工作。圖像的src沒有改變。 – Jako

+0

雖然工作,我正在尋找方法使用相同的代碼行的其他div的不一定是'#spark_page' – Jako

+0

結束了與你接近的東西,但你幫助我在正確的方向。謝謝! '(this).parents(「。sub_page」)。find(「。page_text> img」)。attr(「src」,「new_image.jpg」);' – Jako

0

嘗試closest()

$(".car_story li").click(function() { 

    $(this).closest('.sub_page').find(".page_text img") 
           .attr("src","newimage.jpg"); 

}); 
0

這樣做的同樣的結果,但我認爲在所有情況下你會得到什麼結果更清楚(例如,如果你有另一個頁面可能被加入這也正好與該car_story類裏那麼這個單擊事件將仍然只火了spark_page):

$(".car_story li").click(function() { 
    $('div#spark_page').find(".page_text img").attr("src","newimage.jpg"); 
}); 

當然,如果你在多個HTML李car_story s到AJAX和想改變所有.page_text img的來源,那麼我認爲你可以做

$(".car_story li").click(function() { 
    $(".page_text img").attr("src","newimage.jpg"); 
});