0

ul 親内の子要素を見つけようとしています。しかし、最初の a だけを見つける必要があります。これが私が使用しているものです

$('div.item a').click(function() {
    $(this).parent().next('ul.subItems').find('a:first').addClass('selected');
});

HTML:

<div class="item"><a id="main5830" href="http://www.mysite.com">Test</a></div>
<ul class="subItems">
<li><a>test 1</a></li>
<li><a>test 2</a></li>
<li><a>test 3</a></li>
</ul>

選択したクラスを取得するために、テスト 1 の要素が必要です。

何らかの理由で、これは UL 内の最初の a または UL 要素内の ANYTHING を選択していません。ここで何か間違ったことをしましたか?

4

1 に答える 1

6

アンカーのデフォルトのクリック動作を防ぐために、クリックイベントハンドラーの最後でreturn false;(または)を使用するだけで機能します。event.preventDefault();

$('div.item a').click(function() {
    $(this).parent().next('ul.subItems').find('a:first').addClass('selected');
    return false;
});

また

$('div.item a').click(function(e) {
    e.preventDefault();
    $(this).parent().next('ul.subItems').find('a:first').addClass('selected');
});

これが動作することを示す動作デモです

于 2009-11-01T19:35:56.263 に答える