Должен использовать jQuery.find для нахождения элемента с определенным стилем

Если у вас довольно сложная база данных, Hibernate не для вас. На работе у нас довольно сложная база данных с большим количеством данных, и Hibernate на самом деле не работает для нас. Вместо этого мы начали использовать iBATIS. Тем не менее, я знаю много магазинов разработчиков, которые успешно используют Hibernate - и он делает для вас много тяжелой работы - так что стоит подумать.

Spring - хороший инструмент, если вы знаете, как правильно его использовать.

Я бы сказал, что фреймворки - это, безусловно, хорошая вещь - как уже отмечали другие, вы не хотите изобретать велосипед. Spring содержит много модулей, которые означают, что вам не придется писать так много кода. Не поддавайтесь синдрому «Не изобретено здесь»!

24
задан Steven 13 October 2009 в 20:06
поделиться

6 ответов

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

$("#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");
26
ответ дан 28 November 2019 в 22:59
поделиться

Вы можете использовать селекторы атрибутов и опцию 'contains'

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

. По сути, это говорит: 'любой атрибут стиля ul, который содержит текст display: block'

22
ответ дан 28 November 2019 в 22:59
поделиться

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

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

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

0
ответ дан 28 November 2019 в 22:59
поделиться
$('#adminMenu li').find("ul:visible").css('display', 'none');

или

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

или

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

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

0
ответ дан 28 November 2019 в 22:59
поделиться

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

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

jQuery('#adminMenu li').find("ul").slideUp('fast');
0
ответ дан 28 November 2019 в 22:59
поделиться
$('#adminMenu li ul').hide();
0
ответ дан 28 November 2019 в 22:59
поделиться
Другие вопросы по тегам:

Похожие вопросы: