我的网站的所有页面上都有一个NavMenu,这是一个包含图像的表格,可以引导您访问他们的产品页面。我正在尝试编写一个脚本来更改这些链接和图像下显示的名称,具体取决于查看网站的语言,但它不起作用。我已经更改了名称和链接作为示例,但从根本上说它是相同的。我正在使用Wordpress,我已经尝试将脚本放在“header.php”中并使用“Scripts n Styles”插件。此外,我对JavaScript很陌生,所以不要再对可能在将来帮助我的任何批评措施保留。
这是带有链接的产品图片的表格的HTML,我删除了大部分内容以便于阅读:
<table style=width:100%>
<tbody>
<tr>
<td><a id="LinkToProduct" href=www.example.com/lt/product><img class="productIconImage" src="www.example.com/uploads/productimage.png/>
<div class="productIconName" id="ProductName">Product name in lithuanian</div>
</a>
</td>
</tr>
</tbody>
</table>
这是我写的剧本:
<script>
(function changeMainProductNavLinks() {
var currentUrl = location.href;
var parts = location.href.split("/");
if (parts[1] == "eng") {
//Changing of the div text and href links.
document.getElementById("LinkToProduct").href = "www.example.com/eng/product";
// Changing the url to english language site
document.getElementById("ProductName").innerHTML = "Product name in english";
})()
</script>
答案 0 :(得分:2)
document.getElementById("").setAttribute("href", "http://....");
试试这种方式。
答案 1 :(得分:2)
好吧,我终于明白了。问题是我没有放第二个&#34;}&#34;结束这个功能,只有一个结束&#34;如果&#34;声明。这一直是问题所在,现在它正常运转。感谢所有试图提供帮助的人
答案 2 :(得分:0)
window.location.href
中包含http://
,因此parts[1]
将是一个空字符串。
您可能希望使用window.location.pathname
或将索引更改为http://
答案 3 :(得分:0)
将脚本更改为此
<script>
(function changeMainProductNavLinks() {
var currentUrl = location.href;
var parts = currentUrl.replace(/.*\//g,'').replace(/\?.*/g,'');
if (parts == "eng") {
//Changing of the div text and href links.
document.getElementById("LinkToProduct").href = "www.example.com/eng/product";
// Changing the url to english language site
document.getElementById("ProductName").innerHTML = "Product name in english";
}})()
</script>