2016-09-08 73 views
0

所以我有一个可以使用Jquery UI选项排序的divs列表。
这些div包含一些使用setAttribute方法的自定义属性,如:
.setAttribute("Nr", "Nr_1").setAttribute("V", "V_1")。我已经可以使用.toArray方法
从可排序列表中获取所有元素属性

$("#NameContainer").sortable("toArray", { attribute: 'value'});

$("#NameContainer").sortable("toArray", { attribute: 'Nr' });

$("#NameContainer").sortable("toArray", { attribute: 'V' }); 


得到辛格运河属性的阵列
<div id="NameContainer" class="ui-widget"> 
     <div value="Name_1" id="Name_1">John</div> 
     <div value="Name_2" id="Name_2">Jack</div> 
     <div value="Name_3" id="Name_3">Charlie</div> 
     <div value="Name_4" id="Name_4">Sawyer</div> 
     <div value="Name_5" id="Name_5">Yin</div> 
     <div value="Name_6" id="Name_6">Ben</div> 
    </div> 

我现在的问题是如何能得到所有属性从排序后按正确的顺序从每个Elemente或在singel变量当然。

UPDATE:
让正在为intented我的第一个解决方案看起来像这样:

for(var i = 0; i<ArrayList.length; i++){ 
var attributeArray = [arrayValue[i], arrayNr[i], arrayV[i] ]; 
mainArray.push(attributeArray); 
} 

,然后调用主:mainArray[ ] [1]

+0

你是说你想重新排列它们的属性?或者你想要一个字符串/数组/其他数据类型包含它们被发现的顺序的属性? – Turk

+0

我想要一个字符串/数组/一些其他数据类型,其中包含属性的顺序,他们被发现,sry为beeing不清楚:( – TheWandererr

+0

所有好,属性名称都是一样的还是他们都变化?你想要的 – Turk

回答

0

编辑:这样做只是为主要的div容器..fixed:

如果你想获得它们被发现的顺序的属性,那么我认为你可以做一些事情:

var el = $('#NameContainer > div'); 

var nodes=[], values=[]; 
el.each(function() { 
    for (var att, i = 0, atts = $(this).attributes, n = atts.length; i < n; i++){ 
     att = atts[i]; 
     nodes.push(att.nodeName); 
     values.push(att.nodeValue); 
    } 
}); 

这将给你两个数组,其中索引i的节点会给你属性名称和值相同的索引i将是该属性的伴随值。这可以通过许多不同的方式进行重组,但这是实现您的目标的简单方法。