次のようなテーブルがあります。
<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>
カスタム セル キーボード ナビゲーションを実装しています。たとえば、キーボード入力でフォーカスを新しいセルに移動できるようにしたいのですが、特定のセレクターに一致するセルをスキップします (必要なセルの最後で右矢印を押す) #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