代码之家  ›  专栏  ›  技术社区  ›  Arlen Beiler

在浏览器中删除带有JavaScript的链接

  •  7
  • Arlen Beiler  · 技术社区  · 15 年前

    如何使用JavaScript从网页中删除链接?我用的是谷歌浏览器。我试过的代码是:

    function removehyperlinks() {
        try {
            alert(document.anchors.length);
            alert(document.getElementsByTagName('a'));
            for(i=0;i=document.anchors.length;i++) {
                var a = document.anchors[i];
                a.outerHTML = a.innerHTML;
                var b = document.getElementsByTagName('a');
                b[i].outerHTML = b[i].innerHTML;
            }
        } catch(e) { alert (e);}
        alert('done');
    }
    

    我的html正文如下所示:

    <body onload="removehyperlinks()">
    <ol style="text-align:left;" class="messagelist">
        <li class="accesscode"><a href="#">General information, Updates, &amp;   Meetings<span class="extnumber">141133#</span></a>
            <ol>
                <li><a href="#">...</a></li>
                <li><a href="#">...</a></li>
                <li><a href="#">...</a></li>
                <li><a href="#">...</a></li>
                <li><a href="#">...</a></li>
                <li><a href="#">...</a></li>
                <li><a href="#">...</a></li>
                <li><a href="#">...</a></li>
                <li start="77"><a href="#"">...</a></li>
                <li start="88"><a href="#">...</a></li>
                <li start="99"><a href="#">...</a></li>
            </ol>
        </li>
      </ol>
    </body>
    
    5 回复  |  直到 9 年前
        1
  •  7
  •   AdmSteck    15 年前

    如果可以包含jquery,那么只需使用

    $('document').ready(function (){
        $('a').contents().unwrap();
    });​​​​​​​​​​​​​​​​​
    
        2
  •  7
  •   Justin Johnson    4 年前

    这是一些香草JS,可以起作用。它所做的只是替换 a span 的和副本 class id

    var anchors = document.querySelectorAll("A");
    
    for ( var i=0; i < anchors.length; i++ ) {
        var span = document.createElement("SPAN");
        if ( anchors[i].className ) {
            span.className = anchors[i].className;
        }
    
        if ( anchors[i].id ) {
            span.id = anchors[i].id;
        }
    
        span.innerHTML = anchors[i].innerHTML;
    
        anchors[i].parentNode.replaceChild(span, anchors[i]);
    }
    
        3
  •  2
  •   Deke    7 年前

    你可以用 removeAttribute

    var allImages = document.querySelectorAll('.imageLinks');
    
    function removehyperlinks()(){  
        for (var i = 0; i < allImages.length; i++) {
        allImages[i].removeAttribute("href");
      }
    }
    
    removehyperlinks()()
    
        4
  •  1
  •   Robusto    15 年前

    尝试

    var ary = document.getElementsByTagName("a");
    

    去拿锚。

    for (var i=0;i<ary.length;i++) {
      // brain cramp: document.removeElement(ary[i]);
      ary[i].parentNode.removeChild(ary[i]);
    }
    
        5
  •  1
  •   Arlen Beiler    15 年前
    function removehyperlinks() {
        try {
            for(i=0;i<document.anchors.length;i++) {
                document.anchors[i].outerHTML = document.anchors[i].innerHTML
            }
        } catch(e) { alert ("try2:" + e);}
    }
    function runner() {
        for(i=1;document.anchors.length > 0;i++) {
            //alert('run ' + i + ':' + document.anchors.length);
            removehyperlinks();
        }
    }
    

        6
  •  0
  •   Vladimir Miroshnichenko    4 年前

    document.querySelectorAll(".description a").forEach(a => a.outerHTML = a.innerHTML);