JQuery - если div не имеет определенного идентификатора среди своих потомков - PullRequest
0 голосов
/ 10 марта 2019

если у div нет дочерних элементов div с определенным идентификатором, сделайте что-нибудь

Я пытаюсь безуспешно. Мои многочисленные попытки не работают.
Синтаксис выглядит нормально, но я не могу понять правильную логику.
Заметка. div с идентификатором [#my_selector], который я проверяю, не является непосредственным потомком

    if ($('.fancybox-container div:not(:has[id="'+my_selector+'"])')) {
        // do this 
    }

и ни один из приведенных ниже примеров не работает. Может кто-нибудь, пожалуйста, помогите понять это?

    if ($(".fancybox-container").not('div:has[id="'+my_selector+'"]')) {}
    if ($(".fancybox-container").find('div:not(:has[id="'+my_selector+'"])')) {}
    if ($('.fancybox-container div:not(:has("#" + my_selector))')) {}

Ответы [ 2 ]

0 голосов
/ 10 марта 2019
  1. ID должен быть уникальным, поэтому if ($("#"+my_selector).length===0) ...
  2. Если не ID, то сделать то же самое с find if ($(".fancybox-container").find(my_selector).length ===0) ...
0 голосов
/ 10 марта 2019

Вы можете просто использовать $('.fancybox-container #' + myselector), а затем проверить его длину.Если контейнер fancybox не содержит ни одного элемента с таким идентификатором, он вернет нулевую длину:

if ($('.fancybox-container #' + myselector).length) {
  // Contains a descendent element with that ID
} else {
  // Does not contain a descendent element with that ID
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...