2013-09-26 56 views
0

我有一個使用jQuery Cycle構建的內容旋轉器,並且正在嘗試向它添加jQuery Fancybox。獲取圖像src然後將其應用爲每個循環中的href

HTML:

<div class="secRotatorSlide"> 
    <a href="" class="iframe enlargePic">Enlarge</a> 
    <img class="slideImg" src="secRotatorImg/slide1.png" alt="Slide 1" /> 
    <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit.</p> 
</div> 

有多種套以上的HTML。所有旋轉都正確。

的jQuery:

jQuery('.secRotatorSlide').find('.slideImg').each(function() { 
    var iframeSrc = jQuery(this)[0].src; 
    //alert(iframeSrc) 
    jQuery('a.enlargePic').attr('href', iframeSrc);  
}); 

如果我註釋掉設置HREF行,並取消了警戒線,將正確地提醒每SRC一前一後。如果我離開它,它會從最後一組html中獲取圖像src,並將其應用於所有html集合中的所有href。

我在做什麼錯?我認爲它是在jQuery的最後一行,但我不確定。我試過在最後一行使用this,但是完全沒有做任何事情。

+2

「a.enlargePic''選擇_all_具有該類的元素...因此,請參閱您指定的_specific_之一。 F.E.通過再次去父div,只發現一個元素在... – CBroe

回答

4

您的選擇器jQuery('a.enlargePic')太泛化。這會在DOM中找到所有匹配的元素,您將繼續爲其設置href值。你需要限制它的範圍。

嘗試: jQuery(this).siblings('a.enlargePic').attr('href', iframeSrc);

這樣,你只設置值,這是你處理元素的同一父(兄弟姐妹)的子女的元素。

http://api.jquery.com/siblings/

編輯:如果所有的圖片和主持人的共享相同的父母,然後再考慮$.prev()

+0

完美。非常感謝你,並接受答案。那麼,我會在7分鐘內接受它! – AndyWarren

1
jQuery(this).prev('a.enlargePic').attr('href', iframeSrc); 

的選擇a.enlargePic選擇與特定類的DOM的所有環節。通過使用.prev()

相關問題