【问题标题】:How to change HTML link's href property dynamically如何动态更改 HTML 链接的 href 属性
【发布时间】:2012-04-16 11:04:53
【问题描述】:

您好,我的MVC3 视图上有一个HTML 链接。

我想在用户每次点击它时更改它的href 属性。

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

有什么办法可以解决这个问题。

非常感谢

【问题讨论】:

  • 在点击事件上使用JS
  • 链接是否转到另一个页面?还是内部链接?因为如果它转到外部页面,那么您将需要一个服务器端解决方案来记住点击次数。
  • 为什么在 a-tag 中有一个提交按钮?
  • 您的 HTML 无效。 &lt;a&gt; 元素不能包含交互式内容。
  • @Quentin:非常正确。 @user:查看a element的内容模型,链接到interactive content的定义。这与您的问题无关,但对于昆汀来说仍然是一件有用的事情。

标签: javascript jquery html asp.net-mvc-3 jquery-ui


【解决方案1】:
$(".tabs").click(function() {
   $(this).attr("href","newhref.com");
});

更新


你可以这样获取属性值,

$(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");​
})​;​

【讨论】:

  • 你能告诉我如何使用开关条件来查看它吗?当前href 值是这个“#tab1”,然后将它设置为“tab2”。提前致谢。
  • @user1211185 如果这是您问题的正确答案,您应该将其标记为答案
  • 嗨,Jayanga,我试图标记它,但它说我可以在 10 分钟后标记它可能是我没有足够的声誉。谢谢
  • 这是您的问题,you can accept any answer to any of your own question(s)(它会奖励您一定程度的代表)。您所要做的就是等待计时器清零并允许您这样做。
  • @ocanal no 我的页面上有 7 个标签,目前没有上一个按钮。我只是在前进。
【解决方案2】:
$("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/

【讨论】:

  • 如果您要提出该声明,我是否建议您访问JS Perf 并提供支持/证据? (你是对的,但是......你知道,引用你的来源。=))
  • "请注意,应该始终通过 jQuery 访问三个属性:“src”、“href”和“style”。这些属性需要在旧版本的 IE 中使用 getAttribute。"
猜你喜欢
  • 2015-07-16
  • 2010-09-15
  • 2016-11-10
  • 2014-10-21
  • 2010-11-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多