J'ai du mal à convertir un code> NODELIST code> à un tableau dans IE 8. Les travaux suivants sont parfaitement en chrome, mais dans IE 8 J'ai essayé d'ajouter une fonction de prototype à un tableau juste pour vérifier ma santé mentale et fonctionne correctement. Cela me fait penser que c'est-à-dire que 8 ne renvoie pas réellement un nodeliste Qu'est-ce que je fais mal? P> p> toarray () code> n'est pas reconnu comme valide:
code>? Voici un exemple complet: p>
4 Réponses :
Ie ne prend pas en charge Vous pouvez faire une alerte NODELIST code> de la manière standard. C'est pourquoi vous devez rouler votre propre espace de noms et ne pas étendre les objets de base du navigateur. P>
(typeof window.nodelist) code> et voir s'il est indéfini ou non. P>
Dans chrome, il est code> code>, dans IE 8 c'est objet code>, pas
non défini code>. De toute façon, cela déboguait de l'ancien code que j'ai maintenant refoulé dans un espace de noms que j'ai déjà eu.
Vous devez avoir une version plus récente de IE8 'car la mine est indéfinie.
Premièrement, n'utilisez pas Deuxièmement, n'étendez pas d'objets DOM tels que document.all code> - il est non standard et obsolète. Utilisez
document.getelementsByTagname code> a > Pour obtenir les éléments div dans votre cas. p>
NODELIST CODE> - Les objets intégrés sont une race très étrange et ne sont pas nécessaires pour se comporter comme aucun autre objet avec lequel vous travaillez généralement. Voir cet article pour une explication approfondie de ceci: Qu'est-ce qui ne va pas avec l'extension de la DOM . P>
J'utilisais getelementytagname code>, mais basculé sur
document.all code> pendant les tests. Cela faisait partie d'un problème plus important et j'ai essayé de le simplifier. Le vrai problème a fini par être une méthode d'extension sur
TRAY CODE> qui a été mal implémentée et affectée d'autres codes.
Bons commentaires mais ne répond pas à la question
Une ancienne question, mais voici une méthode éprouvée: explication p> Pour trouver la liste des nœuds que vous avez peut également utiliser `document.getelementsbyTagname (), mais celui-ci est plus flexible. P> P>
document.queryselectorall code> utilise un sélecteur de style CSS pour rechercher des éléments et renvoie une liste de nœuds. Cela fonctionne à partir de 8. li>
appel code> vous permet d'emprunter une méthode d'un objet à utiliser sur un autre li>
ul>
Vous ne pouvez pas appeler des tranches sur une nodéliste dans IE8: \
Si vous recherchez une réponse moderne en utilisant ES6:
https://developer.mozilla.org/en-us/docs/web/javascript/reference/global_objects/array/from p>
Vous pouvez également utiliser l'opérateur de diffusion const Array = [... nœuds] code>
Il n'y a pas de norme actuelle qui dit que
NODELIST code> doit être une fonction de constructeur visible et altérable, ou que s'il existe une fonction de constructeur visible comme
NODELIST code> qu'il sera utilisé comme Le type de retour de toutes les méthodes de retour de NODELIST. (Après tout, un
enfantNODES code> NODELIST et un
getelementsbytagname code> NODELIST font des choses très différentes.) Le prototypage sur les objets JS natifs est spécifié par la norme ECMAScript et est fiable; Le prototypage sur des nœuds DOM et d'autres objets non définis par la norme de langue n'est pas fiable et doit être évité.