【问题标题】:Simple remove text script简单的删除文本脚本
【发布时间】:2012-04-11 03:58:02
【问题描述】:

这可能很简单,但我花了很长时间搜索和谷歌搜索,我已经接近了,但没有雪茄......

有谁能帮我写一个小脚本来删除所有的

<a href="http://mysite.com/search?mode=results&amp;queries_name_query="></a>

在 HTML 文档的正文中?

我的标签是由 JS 生成的,它们总是打印一个额外的空白 href,所以希望另一个快速删除它们的脚本可以解决这个问题?

我们非常感谢所有帮助和有用的建议。

【问题讨论】:

  • 为什么不修复产生多余的脚本而不是清理它?

标签: javascript text


【解决方案1】:
function cleanlinks(){
  var tem, s="http://mysite.com/search?mode=results&amp;queries_name_query=",
  L=document.links, len=L.length;
  while(len){
    tem=L[--len];
    if(tem.href===s)tem.parentNode.removeChild(tem);
  }
}

【讨论】:

    【解决方案2】:

    我的直觉告诉我你可能只是想改变创建它们的脚本以防止它发生,但如果你真的不能这样做,像下面这样的东西应该快速摆脱所有它们 - 'n-dirty那种方式......

    var badLinks = document.querySelectorAll("a[href='http://mysite.com/search?mode=results&amp;queries_name_query=']");
    
    for (var i=0;i<badLinks.length;i++)
       badLinks[i].parentNode.removeChild(badLinks[i]);
    

    【讨论】:

    • 这段代码不是假定所有a 元素都是body 元素的直接子元素吗? jsFiddle.
    • 除了标题和脚本/css 链接之外的所有内容都应该在正文中。
    • @alex 啊,没错!我已经编辑了我的答案来修复它。愚蠢的我...感谢您指出这一点!
    • @JKing 谢谢 :) JS 不是我的领域,我已经将脚本放在了头部,但不幸的是它不起作用。除了 标签,我还有什么遗漏的吗?
    • @Justanotherdunce 任何链接应该是身体的后代,你是对的,但他所说/意思是直接孩子。可以安全地假设这些链接将是更远距离的后代,不幸的是removeChild() 确实 需要引用您正在调用它的元素。就我而言,这是一个愚蠢的错误,如果我想一想,我就应该抓住它。
    【解决方案3】:

    如果mode=results&amp;amp;queries_name_query=可以动态化,你可以通过以下方式匹配上一部分:

    var anchors = document.getElementsByTagName(a);
    for(var i = 0; i < anchors.length; i++) {  
      if(anchors[i].getAttribute('href').match('http://mysite.com/search?mode=results&amp;queries_name_query=') !== -1) {
           anchors[i].parentNode.removeChild(anchors[i]);
       }
    }
    

    【讨论】:

      猜你喜欢
      • 2017-09-25
      • 2019-09-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-04-19
      • 2011-02-22
      相关资源
      最近更新 更多