Comment convertir un tableau d'éléments en NodeList?

tout d'Abord: ce n'est pas demandant comment transformer une NodeList dans un Tableau . C'est le contraire.

par souci de cohérence, je voudrais créer une fonction qui renvoie une NodeList, tout comme document.querySelectorAll() le fait.

Voici mon code actuel:

var toNodeList = function(arrayOfNodes){
  var fragment = document.createDocumentFragment();
  arrayOfNodes.forEach(function(item){
    fragment.appendChild(item);
  });
  return fragment.childNodes;
};

cependant ceci enlève les éléments originaux du DOM!

Comment puis-je faire un NodeList dans un mode non destructive?

0
demandé sur mikemaccana 2014-07-21 20:14:16

1 réponses

Vous devez cloner le nœud.

var toNodeList = function(arrayOfNodes){
  var fragment = document.createDocumentFragment();
  arrayOfNodes.forEach(function(item){
    fragment.appendChild(item.cloneNode());
  });
  return fragment.childNodes;
};

Note de passage true à cloneNode de faire une clone.

1
répondu Dominic 2014-07-21 16:19:13