2013-10-27 4 views
3

Я хочу создать страницу для часто задаваемых вопросов и использовать jQuery для отображения каждого ответа. Но это не работает.
Формат каждого вопроса-ответа, как это:Почему jQuery следующий не может найти следующий div?

<div><a href="javascript:void(0)" class="expand">First Question</a></div> 
<div class="answer" style="display:none">First Answer</div> 

И код JQuery, который я использовал это:

$(".expand").click(function(){ 
    $(this).next('.answer').slideToggle(); 
}); 

Является ли это так? Вы также можете увидеть его jsFiddle.

ответ

19

Два элемента не на одном уровне для next() для работы.

Попробуйте это:

$(".expand").click(function(){ 
    $(this).parent().next('.answer').slideToggle(); 
}); 

Вот updated fiddle для справки

+0

Спасибо @Karthikr ... –

+0

Рад это помогло .. – karthikr

+0

Как использовать селекторы для этого - http://jsfiddle.net/8HH9L/4/ Я хочу чтобы скрыть выбранные строки в таблице после кнопки ... – Ninad

3

Потому что jQuery.next() захватывает братьев и сестер, дев, которые вы пытаетесь получить, является родным родителем, а не братом.

2

Ну $ (это) есть а-элемент, и нет братьев и сестер к этому элементу. Если вы хотите, DIV, использовать родитель:

$(this).parent().next() 
Смежные вопросы