2013-12-09 66 views
1

原諒我缺乏知識,但我對JS相當陌生。我在網站上顯示Instagram供稿,並需要將圖像的標題屬性插入到包裝鏈接中以將其顯示爲燈箱標題。 我的解決方案到目前爲止工作,但問題是,第一個圖像的標題插入到每個鏈接,而不是隻是包裝鏈接。jQuery - 從元素中獲取屬性,將其插入到另一個元素中並重復

腳本:

function(){ 
    $('#instapics a').lightBox(); 
    jQuery('#instapics a img').each(function() { 
     $('#instapics a').attr('title', $(this).attr('title')); 
    }); 
} 

的HTML:

<div id="instapics"> 
    <a href="#"> 
    <img title="IMG title 1" src="xxx"> 
    </a> 
    <a href="#"> 
    <img title="IMG title 2" src="xxx"> 
    </a> 
    ... 
</div> 

這將插入 「IMG標題2」 到這兩個環節。但我需要第一個「IMG標題1」,第二個需要「IMG標題2」,第三個需要「IMG標題3」等。我錯過了什麼?

我期待着一些有用的提示。

回答

4
jQuery('#instapics a img').each(function() { 
    $(this).parent().attr('title', $(this).attr('title')); 
}); // add it to the parent of img which is a 

您還可以使用this.title代替jQuery的$(this).attr('title')

+0

這解決了它馬上。 「this」,而不是重新選擇所有的鏈接。謝謝 – jastone

1

這是因爲你正在選擇所有的錨而不是你正在處理的錨。

$('#instapics a').attr(

必須

$(this).attr(

,你或許應該使用prop()代替attr()

+0

爲什麼'.prop()'?這不是用戶可更改的屬性。 – Blazemonger

0

您可以使用此代碼:

$("#instapics a").attr("title", function() { //Will loop in every a's 
    return $(this).find('img').attr('title'); //Return img title to change the a title. 
}); 

Fiddle

相關問題