隐藏在子div中与父div相同的重复文本

时间:2014-11-14 03:08:56

标签: jquery

这就是我所拥有的:

<div class="outer">
  <table>
   <tr>
    <td>some text</td>
    <td>more text</td>
   </tr>
  </table>
  <div class="inner">
    <table>
      <tr>
       <td>different text</td>
       <td>more text</td>
      </tr>
   </div>
</div>

基本上我需要搜索整个外部div并查找重复文本。唯一的问题是我需要删除它的第一次迭代而不是第二次迭代。换句话说,如果它是重复的,我想把它留在内部div中并将其移除到它之外。

我有这个代码我已经玩过但无法到达任何地方。我将删除内部div中的副本。

 $('.outer td').each(function () {
           var txt = $(this).text();
           if (seen[txt])
               $(this).remove();
           else
               seen[txt] = true;
           $(this).show();
       });

Lil help请...我已经筋疲力尽了。

2 个答案:

答案 0 :(得分:1)

您可以执行类似

的操作

var seen = {};
$('.outer td').each(function() {
  var txt = $(this).text();
  if (seen[txt]) {
    seen[txt].remove();
  }
  seen[txt] = this;
  $(this).show();
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div class="outer">
  <table>
    <tr>
      <td>some text</td>
      <td>more text</td>
    </tr>
  </table>
  <div class="inner">
    <table>
      <tr>
        <td>different text</td>
        <td>more text</td>
      </tr>
    </table>
  </div>
</div>

答案 1 :(得分:0)

这应该有效:

$(document).ready(function(){
    $('.outer td:not(.inner td)').each(function () {
        var txt = $(this).text();
        var current = $(this)
        $('.inner td').each(function () {
            if(txt == $(this).text())
            {
               current.remove();
            }
        });
    });
});

http://jsfiddle.net/5phau2sd/1/