У меня возникают проблемы с выбором класса внутри класса. Кажется, что элемент (ы) не хотят показывать. Я попробовал несколько методов, включая .find() и простой («.outer .inner») выбор, но, похоже, не работает для меня.Выбор класса внутри класса
Ниже приведен код в простом формате, чтобы, надеюсь, прояснить вопрос.
https://jsfiddle.net/ruo92tuc/
HTML
<a href="#" class="section01">Section 1</a>
<a href="#" class="sub1">Sub menu 1</a>
<a href="#" class="sub2">Sub menu 2</a>
<a href="#" class="sub2">Sub menu 2</a>
<a href="#" class="sub2">Sub menu 2</a>
<a href="#" class="sub2">Sub menu 2</a>
<a href="#" class="sub1">Sub menu 1</a>
<a href="#" class="sub1">Sub menu 1</a>
<a href="#" class="sub1">Sub menu 1</a>
<a href="#" class="sub1">Sub menu 1</a>
Jquery
$(".sub1").hide();
$(".sub2").hide();
$(".section01").click(function() {
$('.section01').find(".sub1").show();
});
Элементы не вложены, поэтому 'find' никогда не найдет их в качестве элемента-потомка. Реорганизуйте свой HTML. Вложенные 'ULs' с' LIs' являются хорошим способом создания меню/подменю :) –
Или используйте '$ ('. Section01 ~ .sub1')', чтобы получить все слова .sub1 'siblings после' .section01', если nesting is не подходит. – Quantastical
@Quantastical: это меню с подменю. Я был бы удивлен, если бы вложенность не была хорошей идеей. В противном случае вам понадобится другой способ определить иерархию меню :) –