Javascript 复杂jQuery div排序
我试着用不同的方式来分类一些div,我完全迷路了。我一直在尝试一些东西,但我不知道如何让它发挥作用 我在一个容器中有一组不同的div,它们具有相同的类、不同的id、rel和data属性Javascript 复杂jQuery div排序,javascript,jquery,arrays,sorting,Javascript,Jquery,Arrays,Sorting,我试着用不同的方式来分类一些div,我完全迷路了。我一直在尝试一些东西,但我不知道如何让它发挥作用 我在一个容器中有一组不同的div,它们具有相同的类、不同的id、rel和data属性 <div id="container"> <div class="sortable" id="div541" rel="1234" data-rel="Name One"> [some inside html including a table and divs]
<div id="container">
<div class="sortable" id="div541" rel="1234" data-rel="Name One">
[some inside html including a table and divs]
</div>
<div class="sortable" id="div354" rel="4321" data-rel="Name Two">
[some inside html including a table and divs]
</div>
<div class="sortable" id="div763" rel="112233" data-rel="Name Three">
[some inside html including a table and divs]
</div>
</div>
但是在进行实际排序之前,我必须对IDs数组进行排序,这就是我丢失的地方。
在我继续之前,这是实现排序的最佳方式吗?container.append部件是否会修改任何ID或复制和div
如果可以的话,你能帮我吗
我首先做一个$('.sortable).each()
,其中我做了一个3“列”数组。然后我对rel或data rel属性ASC或DESC进行排序,数组排序后,我使用它将div追加到容器中。这样行吗?我讨厌在JavaScript中特别使用数组,所以你能帮我做一个函数对它进行排序,然后让ID列表按顺序恢复吗
非常感谢 一种有趣的排序方法是创建一个包含排序属性值、sperarator和元素ID的精心编制的字符串数组 在示例数据中,字符串数组应如下所示:
['Name One#div541', 'Name Two#div354', 'Name Three#div763', ...]
或者,如果要按数值排序:
['0001234#div541', '0004321#div354', '0112233#div763', ...]
请注意,在这种情况下,您应该用零填充数字字符串,以便按字符串排序是正确的
之后,您只需在数组上使用javascript.sort()
方法即可。数组排序后,可以通过解析分隔符之前的数据来获取ID
如果希望排序按降序进行,只需在排序后使用.reverse()
编辑
您可以将精心编制的数组转换为所需的IDs数组,如下所示:
var ids = ['#div541', '#div354', '#541' ...];
var cont = $('#resultados');
$.each(ids, function(i, v) {
cont.append($(v));
});
var idsArray = $.map( craftedArray, function(val, i) {
return val.substring(val.indexOf('#'));
});
嗯,我不确定。我将如何“取消起草”它呢?我添加了一种可能的方法,可以使用jQuery的
.map()