如何动态更改HTML链接的href属性

问题描述:

嗨我的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

$(".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

$("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