gpt4 book ai didi

javascript - 将 Javascript 字符串 var 传递给 HTML href 标签

转载 作者:太空狗 更新时间:2023-10-29 15:37:29 25 4
gpt4 key购买 nike

由于限制,我必须在网站的每个页眉上设置一个 URL 字符串作为 JavaScript 字符串变量,如下所示 var burl = "http://www.example.com";

现在,我必须在我网站的 HTML href="" 标记内传递此字符串 burl。我还希望能够向 burl 旁边的 href 链接添加额外的 URL 元素。

完整代码如下所示:Javascript + HTML 代码;

<script>
var burl = "http://www.example.com";
</script>
<html>
<head>
</head>
<body>

<h1>JavaScript Variables</h1>

<p>the href below should link to http://www.example.com</p>

<a href="{burl-string-here}/blog/article/">Open Here</a>

</body>
</html>

任何解决这个简单问题的帮助将不胜感激。

最佳答案

您可以通过两种方式做到这一点:

  • document.write

  • 通过 DOM

document.write :

在您想要链接的脚本标签中:

document.write('<a href="' + burl + '">Open here</a>');

这是在页面解析期间处理的,并将脚本链接替换为您输出的文本。

实例:

<script>
var burl = "http://www.example.com";
</script>
<h1>JavaScript Variables</h1>
<p>the href below should link to http://www.example.com</p>
<script>
document.write('<a href="' + burl + '">Open Here</a>');
</script>
<p>this is after the link</p>

通过 DOM

在链接上放一个id:

<a href="" id="burl">Open here</a>

然后在 之后的脚本标记中

document.getElementById("burl").href = burl;

实例:

<script>
var burl = "http://www.example.com";
</script>
<h1>JavaScript Variables</h1>
<p>the href below should link to http://www.example.com</p>
<a href="" id="burl">Open Here</a>
<p>this is after the link</p>
<script>
document.getElementById("burl").href = burl;
</script>


回复你的评论:

what if...I want to manually add an extra element to each link <a href="burl-string-here/extra-link-element"

我会使用 data-*链接上的属性( data-extra ,随便什么)来说明额外的是什么。然后将元素获取到一个变量中,然后:

link.href = burl + link.getAttribute("data-extra");`

我不会把多余的放在href中因为一些浏览器试图扩展href即使你通过 getAttribute 得到它(尽管他们不应该这样做)。

您说的是“每个链接”,这让我觉得您有很多链接。如果是这样,请不要使用 id ,而是一个 class相反:

<script>
var burl = "http://www.example.com";
</script>
<h1>JavaScript Variables</h1>
<p>the href below should link to http://www.example.com</p>
<p><a href="" class="burl" data-extra="/first">First link</a></p>
<p><a href="" class="burl" data-extra="/second">Second link</a></p>
<p><a href="" class="burl" data-extra="/third">Third link</a></p>
<p>this is after the link</p>
<script>
(function() {
Array.prototype.forEach.call(document.querySelectorAll("a.burl"), function(link) {
link.href = burl + link.getAttribute("data-extra");
});
})();
</script>

使用Array#forEach这是在所有现代浏览器上,但不是(比如)IE8。不过,它可以填充/填充,或者您可以使用简单的 for环形。 this other answer 中的选项(请参阅“类数组对象”,因为我们从 querySelectorAll 返回的列表是类数组的)。

关于javascript - 将 Javascript 字符串 var 传递给 HTML href 标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29163097/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com