我将HTML结构化为:
<h2>Title 1 <span class="open"> </span></h2>
<div class="licensesection" id="licensepage1">
//stuff
</div>
<h2>Title 2 <span class="open"> </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 :(得分:2)
正如我所提到的,next()
适用于兄弟姐妹:
next()
- 获取每个元素的紧随其后的兄弟 一组匹配的元素。
<span>
是<h2>
的子元素,它本身就是<div>
的上一个兄弟,因此请parent()
使用<h2>
,然后next()
转到<div>
,就像这样:
$('.open').click(function () {
$(this).parent().next('.licensesection').slideToggle('slow');
$(this).toggleClass('active');
});