我有一個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;
}
}
我有一個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;
}
}
你可以這樣做:
$('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);
});
請注意'index()'獲取元素相對於其父元素的位置。如果表中有多個'
'或''元素,'index()'可能不會返回所需的結果。 –您可以分別訪問<td>
和<tr>
的cellIndex
和rowIndex
性能。很簡單:
$('table').delegate('td', 'click', function (evt) {
var td = evt.target,
row = td.parentNode.rowIndex;
col = td.cellIndex;
alert("Row: "+row+", Column: "+col);
});
使用delegate()
綁定你的事件處理程序中加入一個單一的事件來捕獲細胞上的所有點擊的<table>
元素可以提高性能。 event.target
爲我們提供了生成點擊的元素(在本例中爲<td>
元素)。
請不要寫大寫字母的一切。這使它很難閱讀。謝謝!此外,您的問題似乎可以通過綁定(或委託)單擊事件處理程序到每個單元格來解決。看看jQuery的文檔。 –