2011-10-18 10 views
0

我有一個HTML表格,我需要獲取使用jQuery單擊的單元格的參數。 我該怎麼做?一種獲取表格參數的方法

我需要得到第3行第4列。以下是我迄今爲止

var tr = $(this).parent(); 
for (var i = 0; i < tr.children().length; i++) { 
    if (tr.children().get(i) == this) { 
     var row = i + 1; 
     break; 
    } 
} 
+3

請不要寫大寫字母的一切。這使它很難閱讀。謝謝!此外,您的問題似乎可以通過綁定(或委託)單擊事件處理程序到每個單元格來解決。看看jQuery的文檔。 –

回答

2

你可以這樣做:

$('td').click(function(){ 
    var tr = $(this).closest('tr'); 
    var column = $(this).index()+1; 
    var row = tr.index()+1; 
    alert("you clicked row:"+row+" column:"+column); 
}); 

小提琴這裏:http://jsfiddle.net/YA6WY/

+0

請注意'index()'獲取元素相對於其父元素的位置。如果表中有多個''或''元素,'index()'可能不會返回所需的結果。 –

0

您可以分別訪問<td><tr>cellIndexrowIndex性能。很簡單:

$('table').delegate('td', 'click', function (evt) { 
    var td = evt.target, 
     row = td.parentNode.rowIndex; 
     col = td.cellIndex; 

    alert("Row: "+row+", Column: "+col); 
}); 

工作演示:http://jsfiddle.net/AndyE/T4u93/

使用delegate()綁定你的事件處理程序中加入一個單一的事件來捕獲細胞上的所有點擊的<table>元素可以提高性能。 event.target爲我們提供了生成點擊的元素(在本例中爲<td>元素)。

相關問題