脚本不会根据当前URL更改“href”和“div”内容

时间:2017-09-02 15:44:09

标签: javascript html wordpress

我的网站的所有页面上都有一个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>

4 个答案:

答案 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>