4

コンテナー内に特定のクラスの要素がいくつかあり、その特定の要素のインデックスを取得したいと考えています。次の HTML があるとします。

<div id="TheContainer">

  <div class="MyClass">My Class</div>
  <div class="SomeClass">Not My Class</div>
  <div class="SomeOtherClass">Not My Class</div>
  <div class="SomeClass">Not My Class</div>
  <div class="MyClass">My Class</div>
  <div class="SomeOtherClass">Not My Class</div>
  <div class="SomeClass">Not My Class</div>
  <div class="MyClass">My Class</div>

</div>

MyClass のインデックスを取得したい。これは私が試したものです:

$('#TheContainer').on({
    click: function () { 

       console.log($(this).parent().children('.MyClass').index()); }

}, '.MyClass');

たとえば、ユーザーが 3 番目の MyClass 要素をクリックすると、コンソール 2 が表示されます。jsFiddle はhereです。

ありがとう。

4

2 に答える 2

8

index()オプションの要素引数があることに注意してください。

.index( element )

エレメント

タイプ: Element または jQuery 検索する DOM 要素または jQuery オブジェクト内の最初の要素。

したがって、この場合、thisその引数として次のように使用できます。

$(this).parent().children('.MyClass').index(this);

ここでJSFiddle。

于 2013-07-13T22:47:26.537 に答える
2

.MyClass要素をクリックしているので、thisに渡されたセレコアに関連してのインデックスを確認してくださいindex()。この場合は.MyClass:

$(document).ready(function () {
    $('#TheContainer').on('click', '.MyClass', function () {
        alert( $(this).index('.MyClass') );
    });
});

フィドル

ドキュメントから

.index(セレクター)

要素を検索する jQuery コレクションを表すセレクター。

于 2013-07-13T22:48:07.313 に答える