0

我的 HTML 结构如下:

<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()选择器?

4

1 回答 1

2

正如我提到的,next()适用于兄弟姐妹:

next()- 获取匹配元素集中每个元素的紧随其后的兄弟。

是的<span>的子元素,<h2>它本身就是 的前一个兄弟<div>,所以使用parent()到达那个<h2>,然后next()到达<div>,像这样:

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

jsFiddle在这里。

于 2013-07-03T15:05:21.860 回答