【问题标题】:Change URL - Javascript更改网址 - Javascript
【发布时间】:2014-05-05 05:29:49
【问题描述】:

我打算使用 JavaScript 更改 href 链接。在我的示例中,我想将 url 路径从“linktwo.html”更改为“problem3.html。

我知道可能有更简单的方法可以做到这一点,但这是出于练习目的。

使用下面的示例,我在更改 href 时做错了什么?

HTML:

<body onload="changeLink()">
<div id="p">
<h1> <a href="linkone.html"> first link </a></h1>
</div>
<div id ="q">
<a href="linktwo.html"> second link </a>
</div>

Javascript:

<script type="text/javascript">
function changeLink(){
document.getElementById("q").href.innerHTML="problem3.html";
}
</script>

【问题讨论】:

  • 您如何预见.innerHTML 的工作方式?试试.href = "problem3.html";
  • 删除.innerHTML

标签: javascript innerhtml getelementbyid


【解决方案1】:

选项一: 如下更改 Java 脚本

<script type="text/javascript">
function changeLink(){
document.getElementById("q").href.innerHTML="<a href="problem3.html"> second link </a>";
}
</script>

选项二: 修改代码如下

HTML:

<body onload="changeLink()">
<div id="p">
<h1> <a id ="p1" href="linkone.html"> first link </a></h1>
</div>
<div id ="q">
<a id ="q1" href="linktwo.html"> second link </a>
</div>

JAVA 脚本:

<script type="text/javascript">
function changeLink(){
document.getElementById("q1").removeAttribute("href");
document.getElementById("q1").setAttribute("href","problem3.html");
}
</script>

【讨论】:

    【解决方案2】:

    请检查以下代码

    <script type="text/javascript">
      function changeLink(){
        document.getElementById("q").href ="problem3.html";
      }
    </script>
    

    【讨论】:

    • 这不起作用,因为 id 在&lt;div&gt;,而不是&lt;a&gt;
    【解决方案3】:

    首先,您应该将 ID 放在链接本身上,而不是包含 div

    <a href="linktwo.html" id="my_link"> second link </a>
    

    那么,您应该使用不带innerHTMLhref 属性。

    function changeLink(){
        document.getElementById("my_link").href = "problem3.html";
    }
    

    【讨论】:

      【解决方案4】:

      href一个ID

      </head>
      <body onload="changeLink()">
      <div id="p">
      <h1> <a href="linkone.html"> first link </a></h1>
      </div>
      <div id ="secondDiv">
      <a href="test.html" id="q"> second link </a>
      </div>
      

      并从 javascript 中删除 innerHTML 部分:

      <script type="text/javascript">
              function changeLink(){
                  document.getElementById("q").href = "problem3.html";
      }
      </script>
      

      【讨论】:

        【解决方案5】:

        你也可以这样做:

        <a id="changeurl" href="linktwo.html"> second link </a>
        

        给你的锚一个 id,然后在脚本区域:

         link = document.getElementById('changeurl');
            link.removeAttribute('href');
            link.setAttribute('href','problem3.html');
        

        首先你得到对象。然后删除当前的 href 属性。之后,您可以添加一个新的!希望这有助于并更好地回答您的问题。

        【讨论】:

          【解决方案6】:

          感谢大家提供的有用信息!进一步的实验导致我想出了将我的 javascript 更改为此的想法。

          function changeLink(){
          document.getElementById("q").childNodes[1].href="problem3.html";
          

          不确定这是否实用,但它是每个人的解决方案的附加解决方案。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2012-01-22
            • 2011-08-27
            • 2015-03-04
            • 2012-09-15
            • 2014-06-12
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多