2012-01-17 63 views
1

我正在嘗試使用JQuery查找表格單元格的行號和列號。然而,我的表是嵌套的:在表中查找表--JQuery

<table> 
    <tr> 
     <td> 
      <table><tr><TD></TD></tr></table> 
     <td> 
      <table>...</table> 
    </tr> 
    <tr> 
    ... 
</table> 

jQuery應該作用的td對象是內部表上的on。我已經在上面的代碼中使用了大寫字母。

我見過一些單表的例子 - 有沒有辦法做到這一點嵌套的呢?

編輯:

也就是說,我試圖找到外部表的行數和列數,但所作用的對象是內部TD元素。

+0

不能添加一個id這些表?它會更容易,更乾淨,以後維護 – XepterX 2012-01-17 02:07:15

+0

檢索內部表使用$(「表格表」)。請澄清你的意思是關於OUTER表的行和列。 – 2012-01-17 02:07:33

+0

XepterX - 這些表格相當含糊......如果我給他們ID將它們與他們的行/列(例如innerTable1-2)相關聯,那麼我也可以通過它們的行和列來訪問它們。 – sdasdadas 2012-01-17 04:53:45

回答

2

這將讓你的父母td

$('#inner-td').parent().closest('td'); 

注:僅使用parent()將無法​​正常工作,因爲只着眼於眼前的父母。使用closest()本身也不起作用,因爲它會返回當前的td,因爲closest()會查找與傳遞的選擇器including the current element匹配的最接近的元素。

+0

謝謝,那很簡單! – sdasdadas 2012-01-17 02:05:46

2

檢查此琴:http://jsfiddle.net/pg4sj/

代碼:

$('table table td').click(function() { // change this to suit your selector 
    var theTD = $(this).parents('table:first').parents('td:first'); 
    var col = theTD.index() + 1; 
    var row = theTD.parents('tr:first').index() + 1; 
    alert('[Row, Col] => ['+row+', '+col+']'); 
});