Jquery - Скрыть конкретный div - PullRequest
3 голосов
/ 09 марта 2010

У меня есть несколько div, которые имеют общий класс. Если у одного из этих элементов div нет дочернего элемента div, я хочу скрыть элемент div. Я могу найти нужный div, но не могу его скрыть.

Это мой код,

$(function() {

        if ($(".adRight.childen('div')").length == 0) {
            $(this).hide();

        }

    });

Что я должен использовать вместо этого? это относится к документу, а не к разделу найденного оператора if.

Ответы [ 2 ]

5 голосов
/ 09 марта 2010

Вы ищете:

$("div.adRight:not(:has(div))").hide();

Делает, как он читает.

Ваш исходный код перепутал селекторы с функциями (например, .childen рассматривается как селектор класса) и показывает, что вам нужно прочитать немного больше, прежде чем писать код jQuery. К сожалению.
Например, ваш оператор if ищет что-то, что jQuery не может найти (неправильный синтаксис). jQuery возвращает пустую коллекцию - у нее есть политика, которая не выдает ненужные исключения, поэтому ее длина равна 0. Он не ищет 0 дочерних элементов.
Также обратите внимание, что для простого действия, такого как hide, вам не нужно повторять коллекцию - hide будет работать с уже найденными элементами, используя ваш селектор.

0 голосов
/ 09 марта 2010

Может быть:

if ($ (". AdRight div") == undefined) { $ ( "AdRight.") Скрыть (). }

(~~ не уверен)

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