2010-10-12 56 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()函数。这将选择所选元素的下一个兄弟。

相关问题