如何使用JQuery获取表中的位置?

时间:2009-09-12 15:19:06

标签: jquery html-table

例如:

<table>
<tr><td>1,1</td><td>2,1</td></tr>
<tr><td>2,1</td><td>2,2</td></tr>
</table>

我想使用以下功能:

$("td").click(function(){
alert(xxxx)
})

点击时获取<td>的位置,但是如何?

5 个答案:

答案 0 :(得分:22)

使用无参数调用的index函数将获得相对于其兄弟节点的位置(无需遍历层次结构)。

$('td').click(function(){   
   var $this = $(this);
   var col   = $this.index();
   var row   = $this.closest('tr').index();

   alert( [col,row].join(',') );
});

答案 1 :(得分:16)

Core / index

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

    var column = $(this).parent().children().index(this);
    var row = $(this).parent().parent().children().index(this.parentNode);

    alert([column, ',', row].join(''));
})

答案 2 :(得分:7)

根据this answer,DOM Level 2分别公开tdtr元素的cellIndexrowIndex属性。

让你这样做,这是非常可读的:

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

    var column = this.cellIndex;
    var row = $(this).parentNode.rowIndex;

    alert("[" + column + ", " + row + "]");
});

答案 3 :(得分:3)

在jQuery 1.6中:

$(this).prop('cellIndex')

答案 4 :(得分:1)

$("td").click(function(e){
  alert(e.target.parentElement.rowIndex + " " + e.target.cellIndex)
});
tr, td {
  padding: 0.3rem;
  border: 1px solid black
}

table:hover {
  cursor: pointer;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table>
  <tr>
    <td>0, 0</td>
    <td>0, 1</td>
    <td>0, 2</td>
  </tr>
  <tr>
    <td>1, 0</td>
    <td>1, 1</td>
    <td>1, 2</td>
  </tr>
</table>