Javascript 获取表行中tds onclick的从零开始的索引

Javascript 获取表行中tds onclick的从零开始的索引,javascript,jquery,Javascript,Jquery,嗨,我有一张有很多行的桌子 第一行包含s,接下来的所有行都包含s 如果我使用下面的脚本并单击第一行中的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"&g

嗨,我有一张有很多行的桌子

第一行包含
s,接下来的所有行都包含
s

如果我使用下面的脚本并单击第一行中的
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>
$('td')。单击(函数(){
var s=$(this).parents('table tr:has(td)').index();
警报;
});
如果单击此处,它必须向0发出警报
如果我点击这里,它必须提醒1
如果我点击这里,它必须提醒2
如果我点击这里,它必须提醒3
如果我点击这里,它必须提醒4

将a选择器传递到
.index()
以筛选出同级

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

将a选择器传递到
.index()
以筛选出同级

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

错误的标记。您在
标记之外写入文本依赖
$(this).parent().index()-1
比任何包含选择器和
:has
:contains
或其他任何内容的解决方案都要有效。我也发现它更容易阅读。(但是您的代码不起作用,因为不带参数的
.index()
返回元素相对于DOM中同级元素的索引,而不是相对于jQuery对象中的其他元素的索引。)标记错误。您在
标记之外写入文本依赖
$(this).parent().index()-1
比任何包含选择器和
:has
:contains
或其他任何内容的解决方案都要有效。我也发现它更容易阅读。(但是您的代码不起作用,因为不带参数的
.index()
返回元素相对于DOM中同级元素的索引,而不是相对于jQuery对象中的其他元素的索引。)