【发布时间】:2017-10-07 22:59:37
【问题描述】:
我有一个用 li 动态创建的 ul,我必须按照某个任意顺序进行组织。
这是生成的 HTML 示例:
<ul id="myUl">
<li id="myId_15" class="myId_class">A list item</li>
<li id="myId_264" class="myId_class">Another list item</li>
<li id="myId_573" class="myId_class">Yet another list item</li>
</ul>
这是迄今为止我为这部分管理的 jQuery:
var slicedCompIds = ["15","573","264"];
$.each(slicedCompIds, function(i){
$('#myUl').append($('#myUl li').attr('id', 'myId_' + slicedCompIds[i]));
})
目标是使用“slicedCompIds”数组中的顺序按 id 重新组织或排序列表。它不会按数字升序排列,而且很可能是随机的。
目前我的代码正在生成这个:
<ul id="myUl">
<li id="myId_264" class="myId_class">A list item</li>
<li id="myId_264" class="myId_class">Another list item</li>
<li id="myId_264" class="myId_class">Yet another list item</li>
</ul>
它保持相同的顺序,只是将 id 替换为“slicedCompIds”数组中的最后一个 id。
我真的很难理解我必须申请这部分的逻辑,因此我为什么要征求意见。谁能指出我正确的方向?
谢谢!
【问题讨论】:
-
那是因为 append 只在下一个堆栈循环中执行。在此之前完成迭代并将 id 的值设置为数组中的最后一个值。
-
我不知道,谢谢!
标签: javascript jquery arrays list sorting