2016-09-08 6 views
0

So habe ich eine Liste von Divs, die sortierbar mit der Jquery UI Option sortierbar sind.
Diese divs enthalten einige benutzerdefinierte Attribute mit der setAttribute-Methode wie:
.setAttribute("Nr", "Nr_1") und .setAttribute("V", "V_1"). Ich kann schon ein Array eines Singel Attribut mit dem .toArray Methode
Erhalten Sie alle Element Attribute aus einer sortierbaren Liste

$("#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> 

Meine Frage bekommen nun, wie kann ich alle Attribute erhalten von jeder Elemente in der richtigen Reihenfolge, nachdem sie sortiert wurden oder natürlich in einer einzelnen Variable.

UPDATE:
Also meine erste Lösung, die als intented arbeitet sieht wie folgt aus:

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

Und rufen Sie dann die Haupt: mainArray[ ] [1]

+0

Wollen Sie sagen, dass Sie sie basierend auf ihren Attributen neu ordnen möchten? Oder möchten Sie eine Zeichenfolge/ein Array/einen anderen Datentyp, der die Attribute in der Reihenfolge enthält, in der sie gefunden werden? – Turk

+0

Ich möchte eine Zeichenfolge/Array/einige andere Datentyp mit den Attributen in der Reihenfolge, die sie gefunden werden, sry für eine Unklarheit :( – TheWandererr

+0

Alles gut, wie sind die Attributnamen alle gleich oder sind sie alle unterschiedlich? Möchten Sie die Name der gespeicherten Attribute oder der Daten, die diese Attribute gespeichert haben? – Turk

Antwort

0

EDIT: tat es nur für die Haupt div Container ..fixed:

Wenn Sie die Attribute in der Reihenfolge erhalten möchten, die sie gefunden werden, dann denke ich, dass Sie etwas in der Richtung von tun können:

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); 
    } 
}); 

, die Ihnen zwei Arrays geben, wobei der Index i der Knoten Ihnen den Attributnamen und den gleichen Index i der Werte den begleitenden Wert dieses Attributs geben wird. Dies kann auf verschiedene Arten umstrukturiert werden, aber dies ist ein einfacher Weg, um Ihr Ziel zu erreichen.

Verwandte Themen