Здесь есть несколько проблем.Прежде всего, id
должны быть уникальными - они не могут повторяться, как вы сделали в коде, который вы здесь.Во-вторых, свойство display: none
установлено на div.white_content
, а не li
, поэтому ваш селектор должен быть li:eq(n) div.white_content
.
Даже тогда этот код должен быть легко переписан во что-то более аккуратное, например:
$('div[id^=act]').click(function(){
var n = parseInt(this.id.substring(3), 10);
$('li').eq(n-1).find('.white_content').fadeIn(400);
});
Учитывая ваш HTML, я думаю, это то, что вам нужно:*
Вы используете дубликат id
s, который является недействительным HTML.Я позволил себе сменить их на классы, что является правильным способом сделать это.Функция closest
ищет ближайшего предка, который соответствует селектору, в данном случае div
, который содержит элементы.
Кстати, поскольку li
являются элементами уровня блока, вы можете пропустить div
и поместить все свое содержимое непосредственно в элемент li
, исключив один слой HTML.