使用 jquery 的 next() 函数获取列表中的下一个元素时,如何在到达列表末尾后获取第一个元素?

Posted

技术标签:

【中文标题】使用 jquery 的 next() 函数获取列表中的下一个元素时,如何在到达列表末尾后获取第一个元素?【英文标题】:When using jquery's next() function to get the next element in a list, how do I get the first element after reaching the end of the list? 【发布时间】:2012-07-10 01:09:50 【问题描述】:

从技术上讲,这不是针对“列表”(ul -> li),而是针对容器 div 内的一系列 div 块。我尝试了许多不同的方法来尝试实现这一目标,但它们都不起作用。发生的情况是,当我到达最后一个元素,然后单击“下一步”按钮时,它会将我带到列表中的第二个元素,而不是第一个元素。这通常是我正在使用的代码:

<div class="wrapperClass">
<div class="myClass" id="ID1">
    <div class="anotherClass">
        <input value="myValue1"/>
    </div>
</div>
<div class="myClass" id="ID2">
    <div class="anotherClass">
        <input value="myValue2"/>
    </div>
</div>
<div class="myClass" id="ID3">
    <div class="anotherClass"">
        <input value="myValue3"/>
    </div>
</div>
...
</div>

var nextID = $('div#'+ID).next().find('input').val();
var lastID = $('div#'+ID+':last').find('input').val();

if( nextID == lastID )

    nextID = $('.wrapperClass').find('input:first').val();

// other code

【问题讨论】:

我见过最长的标题! $('div#'+ID+':last') 没有意义 id 是唯一的,不应该有最后一个元素。你可以试试$('.myClass:last') 我同意!我刚刚编辑了代码,我忘了添加“包装器”div。我的 jquery 函数接收一个名为“ID”的参数。我尝试了很多不同的东西,比如使用 `$('.myClass:first').find('input').val() 等。它总是让我回到第二个元素。 发布的代码在这里工作:jsfiddle.net/RNrg2 同样的问题:)或***.com/questions/11386628/… 【参考方案1】:

我意识到我的错误。我应该写的

if( currentID == lastID )

    // blah

我也写错了

$('div#'+ID+':last')

因为 id 必须是唯一的。感谢“未定义”(指出这一点的未透露姓名的人)。我显然是个新手。

【讨论】:

以上是关于使用 jquery 的 next() 函数获取列表中的下一个元素时,如何在到达列表末尾后获取第一个元素?的主要内容,如果未能解决你的问题,请参考以下文章

jquery跳过列表项

使用 jQuery next() 并忽略嵌套列表?

jQuery .next() 在表格中不起作用

jQuery - live() 不能与附加 div 中的 next() 一起使用

如何使 jQuery 函数迭代从同一类中的 2 个列表中获取的单独数组?

jQuery next() 和 $(this)