所以我有一个div列表,可以使用Jquery UI选项进行排序。
这些div使用setAttribute方法包含一些自定义属性,例如:
.setAttribute("Nr", "Nr_1")
和.setAttribute("V", "V_1")
。我已经可以使用.toArray
方法获得一个singel属性的数组
$("#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>
现在我的问题是,如何在每个元素中对所有属性进行排序或在singel变量中进行排序后,从中以正确的顺序获取所有属性。
更新:
所以我的第一个按预期方式工作的解决方案如下所示:
for(var i = 0; i<ArrayList.length; i++){
var attributeArray = [arrayValue[i], arrayNr[i], arrayV[i] ];
mainArray.push(attributeArray);
}
然后调用主: mainArray[ ] [1]
编辑:只为主要的div容器做它。
如果您想按发现顺序获得属性,那么我认为您可以按照以下方式做一些事情:
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将为该属性的伴随值。可以通过许多不同的方法来进行重组,但这是实现目标的一种简单方法。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句