2012-04-10 79 views
2

的下一个元素比方说,我有这样一些结构:获得同类型

<ul> 
    <li> 
     <input .../> 
    </li> 
    <li> 
     This item doesn't have an input 
    </li> 
    <li> 
     <input .../> 
    </li> 
    <li> 
     <input .../> 
    </li> 
</ul> 

给定参考input要素之一,我怎样才能在列表中的下一个或前input


编辑:一些<li>元素没有输入;我需要代码来处理这些情况。

+0

您想如何处理的开始/结束?环绕或找不到? – tvanfosson 2012-04-10 00:33:19

+0

@tvanfosson包装会很好,但它不是非常重要。 – 2012-04-10 00:41:56

回答

1

我结束了使用的东西通过this answer启发:

var inputs = $("input"); 
var currentIndex = inputs.index(this); 
var next = inputs.filter(function (index) { return index == currentIndex + 1; }) 
+1

通过'inputs'的长度修改'currentIndex + 1',你可以得到环绕效果。 – tvanfosson 2012-04-10 02:00:19

+0

@tvanfosson好主意,谢谢! – 2012-04-10 09:59:10

8

如果this是当前输入:

$(this).closest('li').next('li').find('input'); 
+0

工作。有没有一种方法可以减少文档的实际结构?例如,我希望能够将'ul'更改为其他结构(表格,文章等)。另外,一些'li'没有输入;我需要处理。 – 2012-04-10 00:37:14