2011-06-14 68 views
0

我有一个page with a lot of hrefs列在表行中。用户可以根据选择来隐藏/显示表格行。我想临时将重复项的hrefs更改为纯文本。删除重复的锚标记

我的想法是做一个

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

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

我想我可以刷新页面,但那不会像性感一样。

回答

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取代它。

+0

哦!这是一个好主意!谢谢JAAulde! – 2011-06-14 20:49:23

+0

没有概率,感谢赞美:) – JAAulde 2011-06-14 21:46:25