2011-08-18 117 views
0

我有一個ID爲27的圖像。用jquery更改href

我需要更改圍繞它的鏈接的href。我如何使用jQuery來做到這一點?

這是我的鏈接和圖像屬性。注意。我不能將該ID設置爲鏈接。

<a href=""><img src="" id="27"></a> 

回答

4
$("#27").parent().attr("href", "somewhere.html"); 

這獲取由選擇器相匹配的元件的直接父。或者,您可以使用closest,它遍歷DOM樹直到找到匹配的元素,但我假設img將始終是a元素的直接子元素。

但是,請注意,id屬性值不能以數字開頭,除非您使用HTML5 doctype

更新

已經出現在許多答案分裂輿論對使用parent()closest("a")的這個問題,我把一個快速的性能測試在一起,並在Chrome 12至少,該parent()方法明顯更快(當我運行它時速度超過30%)。

這是link to the test

+0

的微不足道的性能差異是不是一個好足夠的理由寫在大多數情況下脆弱的代碼。 – RSG

+0

@RSG - 同意,但在這種情況下,'img'將始終是'a'元素的直接子元素的可能性非常高。 –

+0

首先,吉米,道具的基準該死的東西,而不是假設「父」更快。但根據你的測試,'父'需要24μs,'最接近'需要35μs,相差只有**11μs**!這需要95,000 **次迭代,延遲一秒鐘(在舊式的Mac上運行過時的Firefox版本 - 現代化的安裝可能要快得多)。 @RSG是對的。但是,再次感謝您的加倍努力。 – Malvolio

1

使用parent選擇器和attr方法。

$('#27').parent().attr('href', someNewValue); 
2

也許是這樣的:

$('#27').closest('a').attr('href','newLink.html');

+0

+1使用更通用的'最接近',不像你所有的書呆子。 – Malvolio

+0

D'oh,現在@RSG正在咬你。 – Malvolio

+0

非常快速的繪製:) – RSG

0

已經考慮

$("#27").parent().attr("href", "something.html"); 

因爲這會工作的任何一個。

0

詹姆斯答案很好。

在設計更改的情況下,我更喜歡使用closest而不是parent

$("#27").closest("a").attr("href","infinityandbeyond.com") 
1
var $mylink="test_link.html"; 
$('#27').parent().attr('href',$mylink);