在应用于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()方法看到它们时,它似乎不是DOM中存在的对象的问题。
答案 0 :(得分:6)
next()
如果与选择器匹配,则返回下一个 元素。
nextAll()
搜索所有下一个元素并返回与选择器匹配的元素。
所以,你可能想要:
nextAll('input:first');
(参见:first
selector)
......或
nextAll('input').first();
......取决于个人喜好。
答案 1 :(得分:1)
Jquery Next method 获取匹配元素集中每个元素的紧随其后的兄弟。如果提供了选择器,则仅当它与该选择器匹配时,它才会检索下一个兄弟。
$('#octet_1').nextAll('input')