2012-10-25 204 views
1

我有一个表,如下所示:JQuery的表穿越

<table> 
    <tr> 
    <td><input id="c1" type="text" class=""></td> 
    <td><input id="c2" type="text" class="readonly"></td> 
    <td><input id="c3" type="text" class=""></td> 
    </tr> 
</table> 

我implmenting一些自定义单元格键盘导航,例如,我希望能够将焦点移动到一个新的细胞上的键盘输入,但跳过与给定选择器匹配的单元格(按#c1末尾的向右箭头应将焦点移动到不是.readonly的下一个单元格,同样,按#c3开头处的向左箭头应将焦点移动到最后一个单元格那不是.readonly

我已经掌握了代码工作键盘事件,但我有问题与我的jQuery选择器移动焦点。我可以轻松地做我想要的循环,但我正在寻找一种更优雅的方式来做到这一点。我目前使用的选择(例如,将 “上一个” 从#c3#c2,(意为#c1))是:

$(el).parent('td').prev('td').find('input').focus(); 

我怎么能基本上做到:

Element -> Parent 'td' -> Closest previous 'td' containing an 'input' element without the 'readonly' class

回答

2

尝试此

$(el).closest('td').prevAll('td:has(input:not(.readonly))').first().find('input').focus(); 
+0

' 'TD:有(输入:否(.readonly))''输入是只读,而不是td –

+0

@KevinB ..感谢您修复.. :) –