Вы можете использовать .nextAll()
и :first
, например:
$('.expander-box').hide();
$('.expand').toggle(function() {
$(this).nextAll('.expander-box:first').slideDown();
}, function() {
$(this).nextAll('.expander-box:first').slideUp();
});
Или намного проще с .click()
и .slideToggle()
, вот так:
$('.expander-box').hide();
$('.expand').click(function() {
$(this).nextAll('.expander-box:first').slideToggle();
});
Обратите внимание, что оба из них найдут следующий .expander-box
это брат , если он ещесложная структура Вам лучше знать структуру и использовать методы обхода дерева для перехода к элементу, начинающемуся с this
, аналогично тому, как вы делаете это сейчас с простыми братьями и сестрами.*
Конечно, есть несколько вариантов, как и в большинстве случаев:
$(this).nextAll('.expander-box:first').slideToggle();
$(this).nextAll('.expander-box').first().slideToggle();
$(this).nextAll('.expander-box').eq(0).slideToggle();
//etc..