jQuery操作表格時,靈活運用選擇器與遍歷方法能高效提取任意單元格數據。本文針對「獲取第一行第二列」等常見需求,提供多種解法。
<table id="dataTable">
<tr><th>ID</th><th>Name</th><th>Age</th></tr>
<tr><td>1</td><td>Person</td><td>100</td></tr>
<tr><td>2</td><td>Gesion</td><td>200</td></tr>
<tr><td>3</td><td>Adam</td><td>300</td></tr>
</table>
| 需求 | 代碼 | 說明 |
|---|---|---|
| 獲取表頭第一行所有單元格 | `$("#dataTable tr:first th")` | 包含th |
| 獲取數據行第一行(不含表頭) | `$("#dataTable tbody tr:first")` 或 `$("#dataTable tr:eq(1)")` | 推薦用tbody語義化 |
| 獲取所有行的第2列(Name列) | `$("#dataTable tr td:eq(1)")` | 索引從0開始,eq(1)為第2列 |
| 獲取第一行第2列單元格 | `$("#dataTable tr:eq(1) td:eq(1)")` | 行索引1(數據首行),列索引1 |
| 遍歷每行提取第2列 | `$("#dataTable tbody tr").each(function(){ var val = $(this).find("td:eq(1)").text(); })` | 最通用穩健 |
// 1. 獲取第一行第二列(數據行)文本
var firstRowSecondCol = $("#dataTable tbody tr:first td:eq(1)").text(); // "Person"
// 2. 獲取所有行第二列數組
var names = [];
$("#dataTable tbody tr").each(function() {
names.push($(this).find("td:eq(1)").text());
});
console.log(names); // ["Person", "Gesion", "Adam"]
// 3. 動態行列定位(如點擊單元格獲取行列索引)
$("#dataTable td").click(function() {
var rowIndex = $(this).parent().index(); // 0-based in tbody
var colIndex = $(this).index();
alert("Row: " + rowIndex + ", Col: " + colIndex + ", Value: " + $(this).text());
});
掌握這幾個選擇器組合,表格數據提取隨心所欲。