2010-10-12 80 views
12

我有一個表有多行,每行包含三個單元格。每個單元包含一個文本框,所以它看起來是這樣的:在JQuery中,我怎麼能得到相鄰的表格單元格?

XXXX XXXX XXXX 

在第一個文本框的keyup事件,我想它的內容被複制到第二個文本框,而不是第三個文本框。

我的keyup事件我可以得到第一個文本框的引用。做.parent()將給我的單元格,如果我想要,再次做.parent()會給我行。

我可以用什麼JQuery來獲取相鄰的文本框?

+0

如果你在行上的最後一個單元格上會發生什麼?你選擇下一行中的第一個單元格嗎?最後一行的最後一個單元發生了什麼? – 2010-10-12 13:46:28

回答

29

您可以使用.next()來獲取下一個兄弟,是這樣的:

var nextTD = $(this).closest("td").next(); 
//for your case: 
$(this).closest("td").next().find("input").val($(this).val()); 

.parent()工作過,.closest()僅僅是一個更靈活一點,你可以改變你的標記,它還是會去的父母最近的<td>

+0

最接近...哇...有沒有這些JQuery人沒有想到的? :) – NibblyPig 2010-10-12 13:46:21

+2

@SLC - DOM遍歷對於圖書館來說是一個非常強大的領域,有很多*移動的函數,請看這裏:http://api.jquery.com/category/traversing/tree-traversal/ – 2010-10-12 13:47:45

+0

似乎最接近的('td')返回null我不知道爲什麼... – NibblyPig 2010-10-12 13:59:23

2

.parent()<td>,用next()去下一個<td>,然後.children('input')讓孩子<input>元素。

所以你最終會在你的keyup處理程序中得到類似的結果。

$(this).parent().next().children('input').val(this.value); 
0

試試next()函數。這將選擇所選元素的下一個兄弟。

相關問題