Maison > Article > interface Web > Solution au problème selon lequel le navigateur IE ne prend pas en charge les compétences getElementsByClassName_javascript
La méthode getElementsByClassName a été ajoutée à DOM3, mais elle n'est pas supportée par les autres versions sauf IE9 et 10. C'est pénible !
La solution actuelle consiste à déterminer si le navigateur prend en charge cette méthode. S'il la prend en charge, laissez-la tranquille. S'il ne la prend pas en charge, ajoutez la méthode getElementsByClassName à l'objet document. Cette façon d'écrire a l'avantage de ne pas la prendre en charge. il faut y aller, qu'il y ait ou non une fonction native. Modifier le code.
Certaines personnes sur Internet définissent directement une fonction getElementsByClassName, mais dans ce cas, toutes les utilisations de document.getElementsByClassName dans le code doivent être réécrites dans getElementsByClassName. C'est quelque peu gênant et pas universel.
La méthode suivante prend parfaitement en charge la rédaction de documents :
if(!document.getElementsByClassName){ document.getElementsByClassName = function(className, element){ var children = (element || document).getElementsByTagName('*'); var elements = new Array(); for (var i=0; i<children.length; i++){ var child = children[i]; var classNames = child.className.split(' '); for (var j=0; j<classNames.length; j++){ if (classNames[j] == className){ elements.push(child); break; } } } return elements; }; }