jQuery .has () Целевой другой элемент - PullRequest
0 голосов
/ 31 марта 2011

Я довольно новичок в jQuery и хотел бы стать лучше.Я попытался придумать следующий фрагмент кода:

$(document).ready(function(){
    $("ul#result-list").has("div#boom")(
        function() {
        $("div.page-navigation").css("display", "none"));
    });
});

Я пытаюсь заставить div.page-navigation исчезнуть, если ul # result-list имеет div # boom.Пока не повезло, несмотря на поиск по всей сети.Я далеко?Спасибо за привет

Ответы [ 3 ]

3 голосов
/ 31 марта 2011

.has() возвращает соответствующие элементы dom, а не логическое значение true или false. Вместо этого проверьте свойство length, чтобы определить, существует ли div#boom в #result-list.

Примерно так:

$(document).ready(function() {
  if ($("ul#result-list").has("div#boom").length) {
    $("div.page-navigation").hide();
  }
});
1 голос
/ 31 марта 2011

Попробуйте что-то вроде этого:

$(document).ready(function() {
   if($('ul#result-list:has(div#boom)').length > 0) {
      $('div.page-navigation').hide();
   }
}

Это позволит скрыть div навигации по страницам, если есть хотя бы один элемент списка результатов, который имеет элемент div boom.

0 голосов
/ 31 марта 2011

Единственные проблемы, которые я вижу, на самом деле, это то, что вы не используете методы цепочки:

$(document).ready(function(){
    $("ul#result-list").has("div#boom")(
        function() {
        $("div.page-navigation").css("display", "none"));
    });
});

Это означает, что после .has() вы открываете скобку, которая не привязана к методу. Я бы посоветовал вам попытаться использовать оператор if, а не пытаться соединиться в этом случае. Я бы отправил свои мысли, но @ DNR , и @ Alex , попал туда первым.

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