怎么用js来修改href属性的值

来源:9-15 替换元素节点replaceChild()

ohitisme

2016-11-07 16:37

怎么用js来修改href属性的值,暂时没学jq

写回答 关注

6回答

  • stone310
    2016-11-08 13:45:39
    已采纳

    修改了其中一段,见注释

    function restoreMessage(){
        var oldnode=document.getElementById("oldnode");
        var newnode=document.createElement("b");
        newnode.id="oldnode"                       //增加一个id,否则后面点击取不了值
        newnode.innerHTML=oldnode.innerHTML;
        oldnode.parentNode.replaceChild(newnode,oldnode);
    
        var olda=document.getElementById("hah"); 
        olda.innerHTML="将加粗改为斜体";
        olda.setAttribute("href","javascript:replaceMessage()");   //这样写要加上javascript:
    }


  • 慕移动9181930
    2022-03-25 15:20:41

    匹配myemailis也可以,但是直接匹配email规则已经可以满足通用需求。

  • ohitisme
    2016-11-08 13:15:09

    <!DOCTYPE HTML>

    <html>

    <head>

    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">

    <title>无标题文档</title>

    </head>

    <body>



      <div><b id="oldnode">JavaScript</b>是一个很常用的技术,为网页添加动态效果。</div>

      <a href="javascript:replaceMessage()" id="hah"> 将加粗改为斜体</a>

      

        <script type="text/javascript">

          function replaceMessage(){

            var oldnode=document.getElementById("oldnode");

            var newnode=document.createElement("i");

            newnode.innerHTML=oldnode.innerHTML;

            oldnode.parentNode.replaceChild(newnode,oldnode);

       

            var olda=document.getElementById("hah");  //

            olda.innerHTML="将斜体改为加粗";

            //olda.href = olda.href.replace("replaceMessage()", "restoreMessage()");

            olda.setAttribute("href","restoreMessage()");

           } 

           function restoreMessage(){

            var oldnode=document.getElementById("oldnode");

            var newnode=document.createElement("b");

            newnode.innerHTML=oldnode.innerHTML;

            oldnode.parentNode.replaceChild(newnode,oldnode);

            

            var olda=document.getElementById("hah");  //

            olda.innerHTML="将加粗改为斜体";

            //olda.href = olda.href.replace("restoreMessage()", "replaceMessage()");

            olda.setAttribute("href","replaceMessage()");

           }  

      </script>

      

     </body>

    </html>


  • stone310
    2016-11-08 11:15:35
    在console上面写的,就这个页面
    document.getElementsByTagName("div")[0].setAttribute("href","hello")
    //undefined
    document.getElementsByTagName("div")[0]
    //<div id="header" href="hello">…</div>


  • qq_黑泽明_0
    2016-11-08 01:58:03

    href.replace(/default/, "test")不会改变href本身,返回值才是处理后的结果

    例:

    <head>
    <link media="screen" type="text/css" href="default/style.css" rel="stylesheet"/>
    </head>
    <body>
    <div>
    <script>
    window.onload = function(){
    var link = document.getElementsByTagName("link")[0];
    link.href = link.href.replace("/default/", "/test/");
    alert(document.getElementsByTagName("link")[0].href);
    }
    </script>
    </div>
    </body>

  • stone310
    2016-11-07 23:01:27

    XXX.setAttribute("href","xxx")或者XXX.href="xxx"

    ohitis... 回复stone3...

    代码在下面

    2016-11-08 13:14:22

    共 3 条回复 >

JavaScript进阶篇

本课程从如何插入JS代码开始,带您进入网页动态交互世界

468195 学习 · 21891 问题

查看课程

相似问题