Manière la plus facile de trier les nœuds DOM?
Si j'ai une liste comme ceci:
<ul id="mylist">
<li id="list-item1">text 1</li>
<li id="list-item2">text 2</li>
<li id="list-item3">text 3</li>
<li id="list-item4">text 4</li>
</ul>
Quelle est la meilleure façon de ré-arranger les nœuds DOM de ma préférence? (Cela doit se faire automatiquement lors du chargement de la page, la liste d'ordre de préférence est obtenu à partir d'un cookie)
E. g.
<ul id="mylist">
<li id="list-item3">text 3</li>
<li id="list-item4">text 4</li>
<li id="list-item2">text 2</li>
<li id="list-item1">text 1</li>
</ul>
- Je ne suis pas sûr si cela va vous aider, mais si vous êtes en utilisant une technologie côté serveur (comme PHP) sur cette page, alors il doit également avoir accès aux cookies. en PHP, c'est dans le global $_COOKIE tableau.
Vous devez vous connecter pour publier un commentaire.
Si il y a probablement un moyen plus facile de le faire à l'aide d'une Bibliothèque JS, voici une solution qui fonctionne à l'aide de la vanille js.
list.children
au lieu delist.childNodes
, vous pouvez éviter de le vérifier pour les nœuds de texte.Vous trouverez peut-être que trier les nœuds DOM ne fonctionne pas bien. Une autre approche serait d'avoir dans votre javascript un tableau qui représente les données qui permettraient d'aller dans le DOM nœuds, de sorte que les données, puis régénérer les div qui contient les nœuds DOM.
Peut-être que vous n'avez que le nombre de nœuds de trier, de sorte qu'il ne serait pas question. Mon expérience est basée sur le fait d'essayer de trier des tableaux HTML en manipulant le DOM, y compris les tableaux, avec des centaines de lignes et un couple douzaine de colonnes.
Le voir en action: http://jsfiddle.net/stefek99/y7JyT/
Laconique
Utilisation es6 syntaxe de recourir enfants:
Ma version, espère, sera utile pour les autres:
/* sort logic */
? :/ Le code semble bon, mais ma logique de tri est un peu faibleSi vous êtes déjà à l'aide de jQuery, je vous recommande tinysort : http://tinysort.sjeiti.com/
Voici un ES6 fonction pour trier les nœuds DOM en place:
Voici comment vous pouvez l'utiliser pour trier Inexploité avis des utilisateurs par score:
sans analyser de trop si cela apporte quelque chose de nouveau à la table, j'ai l'habitude d'utiliser ce:
où l'élément est un tableau des enfants de la même mère. nous retirer en commençant par le dernier et l'ajouter à commencer par la première d'éviter le scintillement dans la partie supérieure qui est probablement à l'écran. j'ai l'habitude de les obtenir mes articles en tableau comme ceci: