Вы можете получить все элементы с классом product-name
и перебрать их, используя .each()
.Используя .each()
, вы можете получить доступ к текущему элементу, с которым вы работали, используя $(this)
.Это даст вам возможность выполнять методы jquery, поскольку вы сделали this
объектом jquery.
Поскольку вы хотите изменить текст каждого из ваших td
элементов, вы можете сделать это с помощью .text()
.text()
позволяет вам передать в функцию, которую вы затем можете return
результат нового текста, который вы хотели бы видеть в вашем элементе.В приведенном ниже примере я использовал Set
с .split()
для создания контейнера уникальных слов (разделенных -
).Разложив набор обратно в массив с использованием синтаксиса расширения (...
), вы можете затем объединить все элементы массива (т.е. слова) обратно в большую строку, которая больше не будет содержать ваши дублирующиеся слова.
Смотрите пример ниже:
$(".product-name").each(function() {
$(this).text(function(_, txt) {
return [...new Set(txt.split(' - '))].join(' - ');
});
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<table border="1">
<tr>
<td class="product-name">Instagram workshop - Instagram workshop</td>
<td class="product-name">Product 4 - Product 4</td>
<td class="product-name">Product 1 - Product 2 - Product 2</td>
</tr>
</table>