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

在浏览器中删除带有JavaScript的链接,javascript,html,Javascript,Html,如何使用JavaScript从网页中删除链接?我正在使用谷歌浏览器。我尝试的代码是: function removehyperlinks() { try { alert(document.anchors.length); alert(document.getElementsByTagName('a')); for(i=0;i=document.anchors.length;i++) { var a = documen

如何使用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');
}
当然,这是测试代码,这就是为什么我有警报和两件事同时尝试的原因。第一个警报返回“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>

  • 试试看

    去拿锚

    然后你可以像这样移除它们

    for (var i=0;i<ary.length;i++) {
      // brain cramp: document.removeElement(ary[i]);
      ary[i].parentNode.removeChild(ary[i]);
    }
    

    for(var i=0;i如果可以包含jquery,只需使用

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

    这里有一些普通的JS可以实现这个技巧。它所做的就是用
    span
    替换
    a
    标记,并复制
    class
    id
    属性(如果它们存在的话)

    var-anchors=document.querySelectorAll(“A”);
    对于(var i=0;i
    函数删除超链接(){
    试一试{
    for(i=0;i 0;i++){
    //警报('run'+i+':'+document.anchors.length);
    移除超链接();
    }
    }
    

    这是可行的。由于我控制着内容,我使用一个简单的搜索和替换将所有锚定命名为“链接”。如果你运行一次,它会删除其他锚定。因此,正如你所看到的,我只是让它重复,直到它们全部被删除。

    你可以使用
    removeAttribute

    var allImages = document.querySelectorAll('.imageLinks');
    
    function removehyperlinks()(){  
        for (var i = 0; i < allImages.length; i++) {
        allImages[i].removeAttribute("href");
      }
    }
    
    removehyperlinks()()
    
    var allImages=document.querySelectorAll('.imageLinks');
    函数removehyperlinks(){
    对于(变量i=0;i
    在一行中

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

    如何获取JQuery以及如何使用它?您也可以引用Google托管的JQuery文件。示例:好处是,如果您的用户已经访问了另一个引用共享文件的站点,那么它很可能位于用户的缓存中。@Arien Beller:D'oh!抱歉,刚才看到您尝试使用document.anchors,这是您在任何循环中使用的方法。这应该可以满足查找和删除它们的需要,因为您所拥有的不是遍历元素,即使是遍历元素,也只是删除锚标记的文本内容,而不是元素本身。我使用了两种方法:警报(document.anchors.length);(0)警报(document.getElementsByTagName('a');([Object NodeList])作为一种解释,它不会出现在锚列表中,除非它设置了name属性。另外,它会每隔一个删除一个的原因是,当你删除第一个,第二个成为第一个,然后你移动到第二个,删除它,第三个…你明白了。我想,我当时不明白while循环可以正常工作。
    while(document.anchors.length>0)doc.anc[0]。outHTML=doc.anc[0].inHTML;
    谢谢!只是一个小注释-
    i
    需要是
    i如果你有3个anchors child,你的循环将只运行两次我不知道如何运行。如果anchors.length==3,那么i=0,1,2。这有时有效,但并不总是有效。当我在上运行此脚本时,许多链接都没有被删除。使用querySelectorAll-fi谢谢。
    
    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();
        }
    }
    
    var allImages = document.querySelectorAll('.imageLinks');
    
    function removehyperlinks()(){  
        for (var i = 0; i < allImages.length; i++) {
        allImages[i].removeAttribute("href");
      }
    }
    
    removehyperlinks()()
    
    document.querySelectorAll(".description a").forEach(a => a.outerHTML = a.innerHTML);