0

テーブル全体で特定のテーブル セルの ID を取得しようとしています。

<table>
  <tr>
    <td>1</td>
    <td>2</td>
    <td>3</td>
  </tr>  
  <tr>
    <td>4</td>
    <td class="current">5</td>
    <td>6</td>
  </tr>
</table>

のインデックスを取得しようとしていますがtd.current、関連していませ<tr><table>

だから単純にやる代わりに

$('td.current').index() 

これは1を出力しますが、4を出力する必要があります(テーブル全体で5番目のtd)。

index() docを読んで、複数のことを試しましたが、常に -1 が返されました。ループでこれを行うことができますが、セレクターでのみ実行しようとしています。

これは可能ですか?

4

3 に答える 3

5

$('.current').index('td');するべきです。

jsFiddle の例

index() ドキュメントの重要な部分は次のとおりです。

要素のコレクションに対して .index() が呼び出され、DOM 要素または jQuery オブジェクトが渡された場合、.index() は、元のコレクションに対する渡された要素の位置を示す整数を返します。

そのため、比較する要素のコレクションを渡す必要があります。

于 2013-03-18T17:11:07.883 に答える
1

親切にこれを試してください::

$('td.current').index('td');
于 2013-03-18T17:12:59.610 に答える
0

試す:

table = $('.current').parent().children('td');
$('.current').index(table);

編集:

.selectedこのメソッドは@j08691のメソッドと同じですが、同じページにさらにテーブルがある場合に備えて、内部にあるテーブルの内部のみを調べます。それ以外の場合は、使用するコードが少ないため、@j08691の回答の方が適しています。

于 2013-03-18T17:11:43.137 に答える