4

HTMLに適用されたときの.next( 'selector')メソッドの動作に少し困惑しています:

<form>
   <label for="relayhosts" class="fixedwidth">Relay Host(s)</label>  
   <input style="display: none;" name="relayhosts" value="" type="text">   
   <input class="ip_octet" id="octet_1" type="text">
   <label class="ip_octet_label">.</label>
   <input class="ip_octet" id="octet_2" type="text">
   <label class="ip_octet_label">.</label>
   <input class="ip_octet" id="_octet_3" type="text">
   <label class="ip_octet_label">.</label>
   <input class="ip_octet" id="octet_4" type="text">
</form>

Using$('#octet_1').next('input');は結果を返しません$('#octet_1').next().next();が、期待どおりに次の入力を返します。

私も試しましたが$('#octet_1').next('input.ip_octet');$('#octet_1').next('.ip_octet');どちらも何も返しません。

input 要素と label 要素は動的に生成されましたが、next.().next()メソッドがそれらを見ると、DOM に存在するオブジェクトの問題ではないようです。

4

2 に答える 2

6

next()セレクターに一致する場合にのみ、次の要素を返します。

nextAll()一方、次のすべての要素を検索し、セレクターに一致する要素を返します。

したがって、おそらく次のことが必要です。

nextAll('input:first');

(:firstセレクターを参照)

... また

nextAll('input').first();

…個人の好みによります。

于 2012-05-08T12:35:29.727 に答える
1

Jquery Next メソッド 一致した要素のセット内の各要素の直後の兄弟を取得します。セレクターが指定されている場合、そのセレクターに一致する場合にのみ、次の兄弟を取得します。

$('#octet_1').nextAll('input')
于 2012-05-08T12:36:02.083 に答える