2013-07-03 3 views
0

Я HTML структуру:Использование следующего() из ссылки за пределами DIV

<h2>Title 1 <span class="open">&nbsp;</span></h2> 

<div class="licensesection" id="licensepage1"> 
//stuff 
</div> 


<h2>Title 2 <span class="open">&nbsp;</span></h2> 

<div class="licensesection" id="licensepage2"> 
//stuff 
</div> 

И JQuery (загруженном после HTML):

$('.open').click(function() { 
$(this).next('.licensesection').slideToggle('slow'); 
$(this).toggleClass('active'); 
}); 

Но добавление next() мешает ему работать. Я также попытался

.next('div.licensesection')

, но это не работает. Я злоупотребляю селектором next()?

+0

следующий() для братьев и сестер. – lifetimes

+1

Используйте '$ (this) .parent(). Next (...' –

ответ

2

Как я уже упоминалось, next() для братьев:

next() - Получить сразу после родственный каждого элемента в наборе соответствующих элементов.

<span> является дочерним элементом <h2>, который сам по себе является предыдущим родственным в <div>, поэтому используйте parent(), чтобы добраться до этого <h2>, а затем next(), чтобы добраться до <div>, например, так:

$('.open').click(function() { 
    $(this).parent().next('.licensesection').slideToggle('slow'); 
    $(this).toggleClass('active'); 
}); 

jsFiddle here.

+1

Ах да ... parent(). Вот и все, спасибо. – cbmtrx

Смежные вопросы