2014-03-01 110 views
0

好了 - 所以這可能很簡單,但我很新的東西HTML和CSS之外,所以我認爲這是一次我問:)jQuery - 將屬性添加到另一個屬性?

所以我想要做的是從一個新的屬性取內容物並將其添加到href屬性。

我有什麼:

<div id="testDiv"> 
    <a href="" newAttr="12345">LINK</a> 
</div> 

$('#testDiv a').attr('href',newAttr+'.extension'); 

而且我想要的結果是:

<div id="testDiv"> 
    <a href="12345.extension" newAttr="12345">LINK</a> 
</div> 

我缺少的東西真的很明顯這裏還是我英里遠?

任何幫助將是偉大的!

感謝, 尼克

*編輯 - 我錯過了在這個崗位等號,而不是我的實際代碼 - 新秀:)

回答

3

您還可以使用attr()得到一個屬性的值:

$('#testDiv a').attr('href', function (i, attr) { 
    return $(this).attr('newAttr') + '.extension' 
}); 

順便說一句,你就錯過=你的HTML標記內:

<a href="12345.extension" newAttr="12345">LINK</a> 
// -----------------------------^here 

Fiddle Demo


編輯:i是你的錨在裏面設置的div美女主播與ID testDiv的索引位置,所以你的情況這將是0因爲只有一個錨定在那裏。在這種情況下,i不是強制性的,因爲您根本不需要使用它。

另一方面,attr將返回您錨點的舊值href。也沒有在這裏需要這一個,因爲你需要newAttr不是href值的值,所以實際上你可以留下他們兩個空白:

$('#testDiv a').attr('href', function() { 
    return $(this).attr('newAttr') + '.extension' 
});  
+0

感謝您的答覆 - 出於某種原因,它只是回來爲未定義。 – Nick

+0

你檢查了我的演示嗎? – Felix

+0

似乎現在工作 - 你能告訴我什麼(我,val)的意思。或(我,attr)和爲什麼'我'實際上需要?因爲它似乎只與(attr)一起工作嗎? – Nick

0

你不只是缺少了用newAttr等號?

<div id="testDiv"> 
    <a href="12345.extension" newAttr"12345">LINK</a> 
</div> 

應該

<div id="testDiv"> 
    <a href="12345.extension" newAttr="12345">LINK</a> 
</div>