4

我对 .next('selector') 方法在应用于 html 时的行为感到有些困惑:

<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');两者都没有返回。

输入和标签元素是动态生成的,但是当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 回答