0

<span>クリックするかどうかに応じて、アンカー内を更新しようとしています。クリックしてスライドが開いている場合は「navigateup」、アクティブでない場合は「navigatedown」です。

アンカー全体を変更する必要がある場合、これは機能しますが、スパンを変更するだけです。また、別のスクリプトを作成することもできますが、既存の jQuery 内に含めるのが最善であると考えました。

何か案は?

私はこのHTMLを持っています:

<li class="page_item page-item-29 parent"><a href="#">Clinical/Laboratory<span class="ss-icon navigation-drop-icon">navigatedown</span></a></li>

これは私のjQueryです:

$(".sub-navigation li.parent > a").click(function(e) {
   e.preventDefault()
   $(this).text($(this).text() == 'navigateup' ? 'navigatedown' : 'navigateup');
   $(this).closest('.parent').find("> .children").slideToggle(400);
});

ありがとう、R

4

1 に答える 1

2

あなたが正しいことを理解していれば、スパンをテキストのセレクターとして提供し、this次のようにコンテキストとして使用して内部を調べることができます。

 $("span", this).text($("span", this).text() == 'navigateup' ? 'navigatedown' : 'navigateup');

jQuery 関数を使用すると、セレクターを使用するときに参照するコンテキストである 2 番目のパラメーターを渡すことができます。この場合、スパン セレクターは、クリックされた要素内のスパン要素のみに一致します。

documentationによると、コンテキストは次のようになります。

コンテキストとして使用する DOM 要素、ドキュメント、または jQuery

.find()jQueryは舞台裏でメソッドを使用していると思うので、あなたの場合、上記の例は単なる省略形です$(this).find("span")

于 2012-11-08T09:49:25.147 に答える