在浏览器中删除JavaScript链接

时间:2010-03-31 19:56:21

标签: javascript html

如何使用JavaScript从网页中删除链接?我正在使用Google Chrome。我试过的代码是:

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');
}

当然,这是测试代码,这就是为什么我同时尝试警报和两件事。第一个警报返回“0”第二个[Object NodeList],第三个返回“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>

6 个答案:

答案 0 :(得分:7)

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

即可
$('document').ready(function (){
    $('a').contents().unwrap();
});​​​​​​​​​​​​​​​​​

答案 1 :(得分:5)

这是一些可以解决问题的香草JS。它所做的只是用a替换span标签,并复制classid属性(如果存在)。

var anchors = document.getElementsByTagName("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]);
}

答案 2 :(得分:1)

尝试

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]);
}

答案 3 :(得分:1)

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();
    }
}

这很有效。当我控制内容时,我使用简单的搜索和替换命名所有锚点“链接”。如果你运行一次,它将取出所有其他的。所以我只是重复一遍,你可以看到,直到他们全部出局。

答案 4 :(得分:0)

您可以使用removeAttribute

var allImages = document.querySelectorAll('.imageLinks');

function removehyperlinks()(){  
    for (var i = 0; i < allImages.length; i++) {
    allImages[i].removeAttribute("href");
  }
}

removehyperlinks()()

答案 5 :(得分:0)

一行

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