jquery .next() 缺少注入的表单元素

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>

使用$('#octet_1').next('input');没有返回结果,但是$('#octet_1').next().next();按预期返回下一个输入框。
我还尝试过$('#octet_1').next('input.ip_octet');$('#octet_1').next('.ip_octet');,两者都没有返回任何内容。
输入框和标签元素是动态生成的,但是由于next.().next()方法可以看到它们,所以似乎不是DOM中对象存在的问题。
2个回答

6

next() 返回下一个元素,仅当它匹配选择器时。

nextAll()则搜索所有下一个元素,并返回那些与选择器匹配的元素。

所以,你可能想要使用:

nextAll('input:first');

(查看:first选择器)

... 或者

nextAll('input').first();

...根据个人喜好而定。


你太棒了!我简直不敢相信我错过了那个。 - Carlos

1

Jquery Next方法

获取匹配元素集合中每个元素紧邻的后续同辈元素。如果提供了选择器,则仅检索与该选择器匹配的下一个同辈元素。

$('#octet_1').nextAll('input')

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接