5
4

7 回答 7

9

您正在将您的 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 中的参数。

于 2013-07-27T05:50:38.157 回答
1

您不能在 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>
于 2013-07-27T05:42:50.613 回答
1

您还必须为此使用 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 属性中。

于 2013-07-27T05:45:49.543 回答
1

首先,通过给它一个标识符来使锚点更容易选择。

<a href="#" id="pathLink"></a>(这是假设您的页面上有多个锚点)

然后,在上面的脚本中包括:

var anchor = document.getElementById("pathLink");

锚标签有一个原生的 href 属性,所以分配新的就像这样简单:

改写:

var anchor = document.getElementById("pathLink").href += pathArray;
于 2013-07-27T05:46:10.183 回答
1

它不会那样工作。您将不得不使用 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;
    }
}
于 2013-07-27T05:47:42.663 回答
0

您可以访问 HTML 中元素的属性。虽然它不是真正的 HTML 变量,但它大致接近它。正如您对变量所期望的那样,您可以get,setremove它。

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 与属性进行交互。这部分解释了为什么它不是“适当的变量”。

于 2018-07-17T16:00:34.827 回答
-1

考虑使用一些模板引擎作为 undescore、mustache 或 doT.js。您可以轻松地用模板的数据变量替换 html 标识符或部分。

于 2014-02-20T18:29:40.790 回答