Необходимо использовать jQuery.find, чтобы найти элемент с определенным стилем - PullRequest
21 голосов
/ 14 октября 2009

Правильно ... Мне нужно найти все элементы

Ответы [ 7 ]

26 голосов
/ 14 октября 2009

Это сложно, как заявлено, но решаемо другими способами. Самый простой:

$("#adminMenu li ul:visible").hide();

при условии, что предметы либо скрыты, либо нет. Конечно, учитывая, что вы хотите скрыть их все, почему бы просто:

$("#adminMenu li ul").hide();

Старайтесь не менять стиль CSS напрямую. Это проблематично. Трудно повернуть вспять, и, как вы обнаруживаете, трудно искать. Вместо этого используйте класс:

#adminMenu li ul { display: none; }
ul.block { display: block; }

с:

$("#adminMenu li ul").removeClass("block");

или

$("#adminMenu li ul.block").removeClass("block");
21 голосов
/ 14 октября 2009

Вы можете использовать селекторы атрибутов, а опция «содержит»

$('#adminMenu li ul[style*="display:block"]').hide()

По сути, это говорит о том, что «любой атрибут стиля содержит текстовый блок: block»

6 голосов
/ 11 апреля 2014

Вы можете использовать фильтр. (http://api.jquery.com/filter/)

Так что вы можете сделать, как показано ниже.

$('ul').filter(function() {
    return $(this).css('display') == 'block';
});
0 голосов
/ 14 октября 2009

Не знаю, как сделать это в одну строку, но вот как вы можете сделать это в пару больше:

jQuery('#adminMenu li').find("ul").each(function (){
  if($(this).css("display") == "block"){
    // do something
  }
});

Если вам нужно обработать все видимые элементы (а не только display: block), вы можете вместо этого попробовать селектор :visible.

0 голосов
/ 14 октября 2009
$('#adminMenu li ul').hide();
0 голосов
/ 14 октября 2009

Вы можете использовать методы fadeOut () или slideUp () для визуального эффекта:

jQuery('#adminMenu li').find("ul").fadeOut('fast');

jQuery('#adminMenu li').find("ul").slideUp('fast');
0 голосов
/ 14 октября 2009
$('#adminMenu li').find("ul:visible").css('display', 'none');

или

$('#adminMenu li').find("ul:visible").hide();

или

$('#adminMenu li ul:visible').hide();

назвать несколько способов

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