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 に答える