Sim*_*mba 41 html javascript sorting jquery
在我的网站的一个页面上,我有一个由用户创建的条目列表 - 标准HTML,<ul>
其中包含<li>
元素.
我想遍历列表,但元素的顺序很重要.
使用jQuery $('.myList li').each()
,我可以保证我将li
按照它们在DOM中出现的顺序获取元素吗?
从我到目前为止的测试来看,似乎它们按照正确的顺序迭代,但我找不到任何告诉我它保证的东西.
如果不能保证,那么按顺序迭代它们的下一个最佳替代方法是什么?
Sim*_*mba 74
因此,在阅读了文档并离开后仍然不太确定之后,我最终潜入了实际阅读jQuery源代码(感谢@ RoryMcCrossan的回答,提示我).
事实上(与@RoryMcCrossan所说的相反),$().each()
使用for...in
或者for
,取决于输入是对象还是数组.
对于'array',它就足以成为一个'类数组'对象,这是jQuery对象的情况,因为它包含一个编号的元素列表和一个length
属性.
因此,调用$().each()
将使用for
而不是for...each
因为它迭代jQuery对象.由于我们正在使用for
,我们知道我们可以保证迭代$().each()
的顺序将匹配给定元素的顺序.
因此,这引出了一个后续问题,即原始查询给出的元素顺序是否保证与它们在DOM中出现的顺序相同.如果是的话,那我应该没问题.
答案可以在@Mritunjay在评论中链接的问题中找到,答案是肯定的,它们按照它们在DOM中出现的顺序返回.
所以最后的答案是肯定的,我可以$('.myList li').each()
按照它们在DOM中出现的顺序使用和遍历列表项.
感谢您的帮助和提示.非常感激.