将 Javascript 变量传递给 <a href >

IT技术 javascript
2021-01-27 07:03:04
<script language="javascript" type="text/javascript">
var scrt_var = 10; 
</script>

HTML部分:

<html>
 this is a <a href ="2.html & Key= scrt_var">Link  </a>
</html>

我只想将 javascript 变量发送到链接(url 参数)

没有 AJAX

6个回答

如果希望它是动态的,以便使用单击时变量的值,请执行以下操作:

<script language="javascript" type="text/javascript">
var scrt_var = 10; 
</script>
<a href="2.html" onclick="location.href=this.href+'?key='+scrt_var;return false;">Link</a>

当然,这是快速而肮脏的解决方案。你真的应该有一个脚本,在 DOM 加载后为所有相关<a>元素添加一个 onclick 处理程序

这是一个可怕的建议;不要使用 JavaScript 来做锚自然做的事情;只需href将锚点属性更改为您想要的 URL。
2021-03-16 07:03:04
我无法使用该变量,但我可以在地址栏中看到它。我怎样才能使用它?
2021-03-23 07:03:04
你好。我可以使用返回字符串的函数代替变量吗?
2021-03-24 07:03:04
这没有任何作用。
2021-03-24 07:03:04
虽然这个答案已有 11 年的历史,而且今天的做法通常会有所不同,但我认为说这是一个可怕的建议是不公平的。例如,如果您在页面上有 1,000 个锚点,并且每个锚点都依赖于一个变量,您是否真的建议在href每次变量更改时更改 1,000 个属性?与往常一样,上下文很重要,人们的建议很少客观地“可怕”。
2021-04-03 07:03:04

将 id 属性放在锚元素上

<a id="link2">

在页面加载事件上设置 href 属性:

(function() {
    var scrt_var = 10;
    var strLink = "2.html&Key=" + scrt_var;
    document.getElementById("link2").setAttribute("href",strLink);
})();

或者,您可以只使用 document.write:

<script type="text\javascript">
var loc = "http://";
document.write('<a href="' + loc + '">Link text</a>');
</script>
为什么 document.write 被认为是“不好的做法”?(这在 09 年也被认为是不好的做法)。
2021-04-12 07:03:04
<script>
   var scrt_var = 10;
   document.getElementById("link").setAttribute("href",scrt_var);
</script>
<a id="link">this is a link</a>
@Andrew: .setAttribute("target", "new") 链接在上一次类似调用之后。但是,请注意弹出窗口是相当不受欢迎的。
2021-03-17 07:03:04
@erenon 有没有办法将 target_new 添加到此代码以在新选项卡中打开?谢谢。
2021-03-19 07:03:04
谢谢!那行得通。在新选项卡中打开被视为弹出窗口?我同意我不喜欢在新浏览器窗口中显示的广告弹出窗口,但我发现比较两个页面或在两个页面位于不同选项卡时返回页面更容易。
2021-03-19 07:03:04
我认为它会类似于 setAttribute("href", "2.html & Key=" + scrt_var) 来形成完整的链接。
2021-04-05 07:03:04
是的,那东西有效,谢谢你的简短而简单的技巧:) @erenon
2021-04-13 07:03:04
<html>

<script language="javascript" type="text/javascript">
var scrt_var = 10; 
openPage = function() {
location.href = "2.html?Key="+scrt_var;
}
</script>

 this is a <a href ="javascript:openPage()">Link  </a>
</html>