删除重复的锚标签

时间:2011-06-14 19:31:13

标签: jquery

我在表格行中列出了page with a lot of hrefs。用户可以根据选择隐藏/显示表行。我想暂时将重复项的href更改为纯文本。

我的想法是做一个

$('a').each(function() {
});

然后在每个元素中,使用nextUntil方法将任何链接更改为等于this.href的文本。但是,当用户选择隐藏/显示不同的选择时,我该怎么办?如何根据新过滤器刷新链接并隐藏重复项?

我想我可以刷新页面,但这不会那么性感。

1 个答案:

答案 0 :(得分:2)

我不完全理解您的问题,但看看这是否符合您的要求:

( function( global )
{
  var $ = global.jQuery,
      uniqueHREFs = {};

  $( function()
  {
    var $matrixTable = $( '#matrix' ),
        $matrixTableChildren = $matrixTable.children().detach();

    $matrixTableChildren.find( 'a' ).each( function()
    {
      var $this = $( this ),
          HREF = $this.attr( 'href' );

      if( typeof uniqueHREFs[HREF] !== 'undefined' )
      {
        $this.replaceWith(
          $( '<span>' ).addClass( 'duplicate-link-replacement' ).html( $this.html() )
        );
      }
      else
      {
        uniqueHREFs[HREF] = true;
      }
    } );

    $matrixTable.append( $matrixTableChildren );
  } );
}( window ) );

它会迭代表中的所有链接,并存储它之前未见过的每个HREF。当它遇到它之前看到过的那个时,它会用一个duplicate-link-replacement类的跨度替换它,并且链接以前具有相同的HTML。