`$('#tbFileList').find(":checkbox:checked").each(...)` 中 `$(this).parent("tr")` 找不到 `
HTML 結構:
<tr class="ckc">
<td><input type="checkbox"></td> <-- checkbox 的 parent 是 td
<td><label id="lblname">...</td>
</tr>
$('#tbFileList').find(":checkbox:checked").each(function() {
var $tr = $(this).closest('tr'); // 或 parents('tr')
var fileName = $tr.find('#lblname').text(); // 在 tr 內查找
var filePath = $tr.find('#lblpath').text();
console.log(fileName, filePath);
});
| 方法 | 範圍 | 回傳 | 適用場景 |
|---|---|---|---|
| `parent([selector])` | 直接父層 (1 層) | jQuery 物件 | 已知直接父層標籤 |
| `parents([selector])` | 所有祖先層 (至 document) | jQuery 物件 (按遠近序) | 需找任意層級祖先 |
| `closest(selector)` | 從自己開始向上找第一個匹配 | jQuery 物件 (單一) | **最常用**:找最近的 `tr`、`form`、`table` |
HTML 中多行重複 `id="lblname"`、`id="lblpath"` **非法**。應改為 `class="lblname"`,查找用 `$tr.find('.lblname').text()`。
用 `closest('tr')` 找到列,再 `find('.lblname')` 取值。修正 `parent` → `closest`/`parents`,並將重複 `id` 改為 `class`。