Javascript 删除重复的Li<;a>;找到标签

Javascript 删除重复的Li<;a>;找到标签,javascript,jquery,html,css,Javascript,Jquery,Html,Css,如果重复,则删除 主要的问题来自于您在锚中包含文本的HTML实体,您必须在检索文本时删除/替换它们,您的第二个“仪表板”文本实际上是Dashboard&lrm,因此它将永远不会与仪表板作为键匹配 从JS或HTML代码中删除它们,例如: var txt = $(this).text().replace(/[^A-Z0-9]+/ig, ""); 注意1:使用x.hasOwnProperty(y)检查对象x是否具有属性y,在您的情况下: if ( seen.hasOwnPro

如果重复,则删除
  • 主要的问题来自于您在锚中包含文本的HTML实体,您必须在检索文本时删除/替换它们,您的第二个“仪表板”文本实际上是
    Dashboard&lrm,因此它将永远不会与
    仪表板
    作为
    匹配

    从JS或HTML代码中删除它们,例如:

    var txt = $(this).text().replace(/[^A-Z0-9]+/ig, "");
    
    注意1:使用
    x.hasOwnProperty(y)
    检查对象
    x
    是否具有属性
    y
    ,在您的情况下:

    if ( seen.hasOwnProperty( txt ) ){
    

    注2:正如@MasterYoda的评论所说,您的
  • 元素应该是
    的子元素,而不是

    var-seen={};
    $('.nav报告类别a')。每个(函数(){
    var txt=$(this.text()。替换(/[^A-Z0-9]+/ig,”);
    如果(参见.hasOwnProperty(txt)){
    $(this).最近的(“li”).remove();
    }否则{
    seed[txt]=真;
    }
    });
    
    .nav报告类别{
    边界:没有!重要;
    }
    .nav报告类别li{
    字体大小:16px;
    填充:10px 0px;
    宽度:110px;
    显示:内联块;
    背景色:rgb(74、137、220);
    颜色:#fff!重要;
    右边距:5px;
    文本对齐:居中;
    -moz边界半径:9px 9px 0px 0px;
    -webkit边界半径:9px 9px 0px 0px;
    边界半径:9px 9px 0px 0px;
    字体颜色:#fff!重要;
    }
    .nav报告类别li.active{
    背景色:#CB6015!重要;
    颜色:#fff!重要;
    }
    .导航报告类别李a:已访问{
    颜色:#fff!重要;
    }
    .nav报告类别li a{
    颜色:#fff!重要;
    }
    .导航报告类别li:悬停{
    背景色:#BE3A34;
    文字装饰:无;
    }
    .选项卡说明{
    背景色:rgb(93156236);
    颜色:#fff!重要;
    填充物:5px;
    }
    .选项卡说明H2{
    颜色:#fff!重要;
    }
    #txt业务功能{
    字体系列:“Segoe UI Light”、“Segoe UI”、“Segoe”、Tahoma、Helvetica、Arial、无衬线字体;
    颜色:#BE3A34;
    字体大小:22px;
    字体大小:粗体;
    }
    
    

  • 您的
  • 元素应该是
    的子元素,而不是
    ,但这并不是您问题的解决方案,只是一个观察,用我的更新版本替换您的JS。我刚从文本中删除了额外的字符。
    if ( seen.hasOwnProperty( txt ) ){