0

こんにちは、多くの行を持つテーブルがあります

最初の行に<th>s があり、その後のすべての行に<td>sが含まれています

以下のスクリプトを使用して、<td>s が含まれる最初の行をクリックすると、1 というアラートが表示されます。「has(td)」を使用するとうまくいくと思いましたか?

$('td').click(function(){

   var s = $(this).parents('table tr:has(td)').index();
   alert(s);

});

<table border="1" width="400px" height="200px">
    <tr>
        <th></th><th></th><th></th><th></th><th></th>
    </tr>
    <tr>
        <td></td><td></td><td></td><td></td><td></td> if I click here it must alert 0
    </tr>
    <tr>
        <td></td><td></td><td></td><td></td><td></td> if I click here it must alert 1
    </tr>
    <tr>
        <td></td><td></td><td></td><td></td><td></td> if I click here it must alert 2
    </tr>
    <tr>
        <td></td><td></td><td></td><td></td><td></td> if I click here it must alert 3
    </tr>
    <tr>
        <td></td><td></td><td></td><td></td><td></td> if I click here it must alert 4
    </tr>

</table>
4

1 に答える 1

4

セレクターをに渡して.index()、兄弟を除外します

$('td').click(function(){
    var s = $(this).parent().index('tr:has(td)');
    alert(s);
});​

http://jsfiddle.net/nAhE3/

于 2012-08-08T07:15:47.323 に答える