Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Здравствуйте. Вопрос про detach();

7krmm Профи (820), на голосовании 7 лет назад
Есть вот такой вот пример: https://jsfiddle.net/smsjrjqc/

Внизу кнопки.
1) Удаление h1
2) Добавление h1 в #wrap
3) Удаление пустых .block

Блоки.
1) Серый блок #wrap (использовался в начале, в этом примере он по сути не нужен)
2) 3 красный блока .block.
2.1) Блок с h1
2.2) Блок с пустым div
2.3) Пустой блок

Так вот сам вопрос. После удаления h1 из .block - он становится пустой, но почему то не удаляется через detach. Почему? Изначально пустой блок удаляется.
Голосование за лучший ответ
ST radio Мыслитель (5241) 7 лет назад
.block остается не пустой, остаются текстовые узлы, empty выбирает элементы которые не имеют детей ( в том числе текстовые узлы). api.jquery.com/empty-selector/ если в изначально пустой блок добавить хотя бы пробел
блок также не удалится
7krmmПрофи (820) 7 лет назад
Воо, спасибо, точно. Забыл про узлы.
(узлы вроде можно удалять)
ST radio Мыслитель (5241) да, к примеру вместо deleted.detach(); очистить эти первые два блока с h1 и div-ом $('.block:eq(0), .block:eq(1)').empty(); и уже при $('div.block').detach(':empty'); эти блоки удалятся
Похожие вопросы