7 回答
您正在将您的 javascript 混合到您的 HTML 中。
我相信您的 pathArray 变量也不会包含您所期望的。
在你的脚本标签中试试这个:
var gamePath = "game.html?" + window.location.search.replace( "?", "" );
document.getElementById("gameAnchor").setAttribute("href", gamePath);
并为您的锚添加一个 id:
<a href="#" id='gameAnchor'>
javascript 将从GET
当前 url 获取所有参数,然后将href
元素中的属性替换为 idgameAnchor
与您的 game.html 连接GET
的 url 中的参数。
您不能在 html 中的任何位置放置 javascript 变量。相反,您需要通过脚本获取 dom 元素并附加 href 属性。给你的锚一个 id 或类名,并以此为例。
<a id="myLink" href="game.html">
<img src="img/RestartButton.png" style="position:absolute;left:80px; top:220px">
</a>
<script type="text/javascript">;
document.getElementById('myLink').href += window.location.search
</script>
您还必须为此使用 JavaScript。首先给你的锚一个ID:
<a id="myLink" href="game.html?"><img src="img/RestartButton.png" style="position:absolute; left:80px; top:220px"></a>
然后将以下内容添加到您的 JavaScript 代码中:
document.getElementById('myLink').href += pathArray;
该代码会将您的字符串变量的内容添加到锚元素的 href 属性中。
首先,通过给它一个标识符来使锚点更容易选择。
<a href="#" id="pathLink"></a>
(这是假设您的页面上有多个锚点)
然后,在上面的脚本中包括:
var anchor = document.getElementById("pathLink");
锚标签有一个原生的 href 属性,所以分配新的就像这样简单:
改写:
var anchor = document.getElementById("pathLink").href += pathArray;
它不会那样工作。您将不得不使用 JavaScript 遍历您需要的锚点。
这还没有经过测试。我假设您希望这种情况发生在多个锚链接上。
HTML:
<a class="updatethis" href="game.html">...</a>
<a href="not-game.html">...</a>
<a class="udpatethis" href="game.html">...</a>
JavaScript: var anchors = document.getElementsByTagName('a');
for (var i = 0, a; a = anchors[i++]; ) {
if (a.className === 'updatethis') {
a.href += window.location.search;
}
}
您可以访问 HTML 中元素的属性。虽然它不是真正的 HTML 变量,但它大致接近它。正如您对变量所期望的那样,您可以get
,set
和remove
它。
Element.getAttribute():
getAttribute() 返回元素上指定属性的值。如果给定的属性不存在,则返回的值为 null 或 ""(空字符串);有关详细信息,请参阅注释:https ://developer.mozilla.org/en-US/docs/Web/API/Element/getAttribute
例子 :
let myDiv = document.getElementById("myDiv");
console.log(myDiv.getAttribute("variable"))
<div class="div" id="myDiv" variable='test'</div>
当然,您也可以设置或删除属性:
元素.setAttribute()
设置指定元素的属性值。如果属性已经存在,则更新值;否则将添加具有指定名称和值的新属性。
元素.removeAttribute()
块引用
removeAttribute 从指定元素中移除一个属性。
注意:话虽如此,您将需要 javascript 与属性进行交互。这部分解释了为什么它不是“适当的变量”。
考虑使用一些模板引擎作为 undescore、mustache 或 doT.js。您可以轻松地用模板的数据变量替换 html 标识符或部分。