3

div、より正確には、同じクラスを持つ別の要素がクリックされたときに表示される id またはクラスを持つ「脇」要素を作成したい...標準のクラスセレクターがあることは知っていますが、私は異なるIDまたはクラスを持つ複数の「脇」要素が必要であり、クリックされた要素と同じクラスまたはIDを持つ要素を開く必要があります...

したがって、すべての div に対してこのコードを記述したくありません。

    $(window).load(function(){
      $('nav ul li#someid').click(function () {
      $('aside#someid').toggleClass('opened');
      });
    });

このようなコードが欲しいです。someid を例から、クリックされた要素の ID を検出し、それを「脇」セレクターとして使用するものに変更する方法はありますか?

4

4 に答える 4

1

あなたは使用してみることができます:

this.id

これは、イベントをキャッチした要素を指します。

于 2012-12-13T19:07:59.800 に答える
1

thisまず、クリックしたオブジェクトに を使用してアクセスできることを知りたい場合があります。つまり、クリックされたオブジェクトの ID またはクラスを取得this.idまたは取得できます。this.classNameさて、その情報をどうするかは、HTML がどのように構成されているかによって異なるため、詳細を提供するにはそれを確認する必要があります。

同じページに同じ ID を持つ複数のオブジェクトを含めることはできません。それを行うことはできません(そうするとセレクターが正しく機能しません)ので、目的のスキームは機能しません。代わりにクラスを使用して、同じクラスで他のアイテムを切り替えることができます。これは、特定のli.

$(document).ready(function(){
    $('nav ul li.foo').click(function () {
        $('aside.foo').toggleClass('opened');
    });
 });

または、HTML によっては (li タグにクラスが 1 つしかない場合)、次のようなより一般的なバージョンを実行できます。

$(document).ready(function(){
    $('nav ul li').click(function () {
        $('aside.' + this.className).toggleClass('opened');
    });
});

実際の HTML を見せていただければ、最適なオプションを提供できます。

于 2012-12-13T19:06:52.093 に答える
0

jQuery が selector で始まることを確認しましたか?

jQuery('[属性^="値"]')

$('aside[id^="foo_"]').toggleClass('opened');

これは、属性がで始まるすべてのasideタグに対してtoggleClass を呼び出しますidfoo_

他の人が述べたように、同じ id タグを 1 つ以上持つことはできませんが、それらすべてをfoo_開始し、セレクターで始まるを使用してそれらをターゲットにすることができます....foo_1 foo_2 foo_3など...

于 2012-12-13T19:06:54.260 に答える
-2

次のようにしてみてください

  $(function(){
      $('nav ul li.someClass').click(function () {
      $('aside#aside_' + $(this).attr('id')).toggleClass('opened');
      });
    });
于 2012-12-13T19:07:23.170 に答える