识别在表格中单击的td

时间:2014-04-11 10:22:26

标签: javascript jquery onclick

我有一张如下表格

enter image description here (全屏:http://i.stack.imgur.com/7Mluq.png

在这里你可以看到" down"某些td上的箭头。

例如第二行和第四列的<td>是:

<td>
   <a href="doc4.html" name="doc4" target="_blank">doc4</a>
   <span class="arrow"></span>
   <div class="toggle" style="display: none;">
      <div><a href="image_3.1.jpg" name="image" target="_blank">image</a></div>
      <div><a href="testingwrongtype_2.2.gif" name="testingwrongtype" target="_blank">testingwrongtype</a></div>
      <div><a href="vsd_2_1.2.png" name="vsd_2" target="_blank">vsd_2</a></div>
      <div><a href="BMP_1.3.bmp" name="BMP" target="_blank">BMP</a></div>
   </div>
</td>

假设用户点击&#34;第二行和第四列(即doc4)&#34;的箭头那么我想得到一些变量中的行号。

var row_clicked = 2

我怎样才能做到这一点?

6 个答案:

答案 0 :(得分:1)

您可以使用 .parent() .closest() 来获取点击tr的父td以及< strong> .index() 以获取此tr的索引:

$('table tr td').click(function() {
    var row_clicked = $(this).closest('tr').index(); // or $(this).parent().index();
});

答案 1 :(得分:1)

试试这个

    $('table .arrow').click(function(e){
    var trindex=$(this).parent().parent().index();
    alert(trindex);
});

<强> SAMPLE HERE

答案 2 :(得分:0)

啊,为什么你删除了我几乎完成写作的旧问题。所以我再一次对它说。

假设&#34;这&#34;是你点击的单元格

var td = this;
var i_td = 0;
while( (td = td.previousSibling) != null ) 
  i_td++;

var i_tr = 0;
var tr = td.parentNode;
while( (tr = tr.previousSibling) != null ) 
  i_tr++;

您点击的行是i_tr,列是i_td,您可以将其存储在上一个问题的Cookie中,然后在文档准备就绪,只需调用yourtableselector.childNodes[i_tr].childNodes[i_td]即可获得之前点击的单元格:)

答案 3 :(得分:0)

尝试:

$('table td').click(function() {
  row_clicked = $(this).closest('tr').index();
});

答案 4 :(得分:0)

您需要首先将类添加到表中,或者如果您已经使用它,则需要使用相同的类。 或者你直接使用&#39; table&#39;或表的ID。

我将提供一些小例子。

  <table border='1' class='abc'>
<tr>
  <td>Jill</td>
  <td>Smith</td>        
  <td>50</td>
  </tr>
<tr>
  <td>Eve</td>
  <td>Jackson</td>      
  <td>94</td>
</tr>
<tr>
  <td>John</td>
  <td>Doe</td>      
  <td>80</td>
</tr>
</table>




 $('.abc').find('tr').click(function(){
    console.log("row clicked "+($(this).index()+1));


});

答案 5 :(得分:0)

点击该箭头即可获得同样的效果。 试试这个。

$('.arrow').click(function(){
console.log($(this).parent().parent().index());
});
相关问题