Удалить дубликаты с JQuery - PullRequest
0 голосов
/ 15 марта 2020

У меня следующая структура:

<div class="section-header Generator" style="display: table-row;">Generator</div>
<div class="section-header Generator" style="display: table-row;">Generator</div>
<div class="section-header Generator" style="display: table-row;">Generator</div>
<div class="section-header Engine" style="display: table-row;">Engine</div>
<div class="section-header Engine" style="display: table-row;">Engine</div>
<div class="section-header Battery" style="display: table-row;">Battery</div>

Используя JQuery, я хочу удалить дубликаты, поэтому приведенный выше список будет выглядеть так:

<div class="section-header Generator" style="display: table-row;">Generator</div>
<div class="section-header Engine" style="display: table-row;">Engine</div>
<div class="section-header Battery" style="display: table-row;">Battery</div>

Любые идеи, как я достиг бы этого? Здесь есть старый ответ здесь , но он не относится к моей проблеме

Ответы [ 3 ]

2 голосов
/ 15 марта 2020

Попробуйте это: -

 
 $('.section-header').each(function(i, v){ 
    var className = '.'+$(this).attr('class').split(' ').join('.');
    $(className + ":not(:first)").remove(); 
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<div class="section-header Generator" style="display: table-row;">Generator</div>
<div class="section-header Generator" style="display: table-row;">Generator</div>
<div class="section-header Generator" style="display: table-row;">Generator</div>
<div class="section-header Engine" style="display: table-row;">Engine</div>
<div class="section-header Engine" style="display: table-row;">Engine</div>
<div class="section-header Battery" style="display: table-row;">Battery</div>
2 голосов
/ 15 марта 2020

Решение здесь - я понял, что использовал неправильные условия поиска:

var seen = {};
$('.table-section-header').each(function() {
    var txt = $(this).text();
    if (seen[txt])
        $(this).remove();
    else
        seen[txt] = true;
});
0 голосов
/ 15 марта 2020

Вы можете использовать eq () для нацеливания на второй элемент с этим классом (он основан на нуле):

$('.Type your class here').eq(1).remove();

сделать это для каждого класса

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...