Задать вопрос
@vardoLP
Ват ю сэй эбаут май мама?!

Как удалить дочерние элементы с одинаковым классом в каждом родительском элементе?

Есть такая разметка

<table>
    <tbody>
        <tr>
            <td class="class_1"></td>
            <td class="class_2"></td>
            <td class="class_3"></td>
            <td class="class_1"></td>
            <td class="class_2"></td>
        </tr>
        <tr>
            <td class="class_1"></td>
            <td class="class_2"></td>
            <td class="class_3"></td>
            <td class="class_1"></td>
            <td class="class_2"></td>
        </tr>
   </tbody>
</table>


Что-то не могу сообразить, как добраться до td в каждой tr и удалить td с одинаковыми классами.
  • Вопрос задан
  • 109 просмотров
Подписаться 1 Простой 2 комментария
Решения вопроса 1
@stepa90
Просто переберите элементы и посчитайте число элементов с таким классом
$('tr td').each((i,e)=>{
let elementsWithClass = $('td.'+$(e).attr('class'),$(e).parent());
if(elementsWithClass.length>1) {
    elementsWithClass.remove()
}
})

Если нужно удалить все кроме первого или текущего или определенного посмотрите здесь как выбрать все кроме одного
Например этот код удалит все кроме первого.

$('tr td').each((i,e)=>{
let elementsWithClass = $('td.'+$(e).attr('class')+':not(:first)',$(e).parent());
if(elementsWithClass.length>0) {
    elementsWithClass.remove()
}
})
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы