2012-04-16 154 views
2

嗨我的MVC3視圖上有一個HTML鏈接。如何動態更改HTML鏈接的href屬性

我想每次用戶點擊它時更改它的href屬性。

<a class="tabs" href="#educationDetails"> 
<input id="SubmitBtn" type="submit" value="Next" /> 
</a> 

有什麼辦法可以解決這個問題。

非常感謝

+2

是否鏈接到另一個網頁?或者它是一個內部鏈接?因爲如果它轉到外部頁面,那麼您需要一個服務器端解決方案來記住點擊次數。 – 2012-04-16 11:07:48

+1

爲什麼你在a-tag中有一個提交按鈕? – stUrb 2012-04-16 11:10:14

+0

嗨@DavidThomas,它不會轉到另一個頁面。它只是在同一頁面上更改菜單欄選項卡。 – user1211185 2012-04-16 11:14:13

回答

6
$(".tabs").click(function() { 
    $(this).attr("href","newhref.com"); 
}); 

UPDATE


,你可以得到的屬性這樣的值,

$(this).attr("href") //will return '#educationDetails' 

,所以你可以檢查像這樣的價值,

$(".tabs").click(function() { 
    if ($(this).attr("href") == "#tab1") 
     $(this).attr("href","#tab2"); 
    else if ($(this).attr("href") == "#tab2") 
     $(this).attr("href","#tab1"); 
}); 

UPDATE-2


如果你只是想#TAB1改爲#TAB2,而不是反轉。你也可以像這樣,

$('a.tabs[href="#tab1"]')​.click(function() { 
    $(this).attr("href","#tab2");​ 
})​;​ 
+0

完美的解決方案..謝謝 – user1211185 2012-04-16 11:08:44

+0

你能告訴我如何使用開關條件來看它當前'href'值是這個「#tab1」,然後將其設置爲「tab2」。提前致謝。 – user1211185 2012-04-16 11:11:17

+0

@ user1211185如果這是您的問題的正確答案,您應該將此標記爲答案 – Jayanga 2012-04-16 11:11:24

1
$("a.tabs").click(function() { 
    this.href = 'newhref'; 
    return false; 
}); 

更高效的這種方式相比@ocanal解決方案。

來源:

http://net.tutsplus.com/tutorials/javascript-ajax/14-helpful-jquery-tricks-notes-and-best-practices/

+0

如果你打算提出這一要求,我可能會建議你訪問[JS Perf](http://jsperf.com/)並提供支持/證據? (你說得對,但是...你知道,引用你的消息來源=)) – 2012-04-16 11:24:14

+0

@DavidThomas。來源... http://net.tutsplus.com/tutorials/javascript-ajax/14-helpful-jquery-tricks-notes-and-best-practices/ – Joberror 2012-04-16 11:29:18

+0

「請注意,有三個屬性應該總是通過jQuery訪問:「src」,「href」和「style」。這些屬性需要在較早版本的IE中使用getAttribute。「 – ocanal 2012-04-16 11:33:43