Je recevais une erreur de d.tagName est indéfini dans le code ci-dessous. Cela se produisait lorsque j'insérais un nouvel élément dans une liste par ordre alphabétique et qu'il était supérieur au dernier élément de la liste. Dans ce cas, il devrait être inséré à la fin de la liste. e et b sont les éléments à insérer et d est l'élément qui doit être inséré avant afin de maintenir l'ordre alphabétique. Cela fonctionne bien sauf pour le cas que j'ai mentionné où les éléments sont les derniers dans la liste.algorithme pour insertion alphabétique - cas particulier
while(d=d.nextSibling)
{
if(d.tagName=="undefined")
{
a.insertBefore(e,d);
a.insertBefore(b,d);
break;
}
else if(d.tagName.toLowerCase()==="a" && (b.innerHTML<d.innerHTML))
{
d=d.previousSibling;
a.insertBefore(e,d);
a.insertBefore(b,d);
break;
}
}
return 1;
a obtenu un violon à montrer? – naveen
Il serait utile de voir la fonction dans laquelle ce code existe, et tout autre code connexe. Les deux conditions peuvent utiliser certaines explications (ie 'd.tagname == 'undefined'' et' d.tagName.toLowerCase() === "a" ... ') – James
Basiquement, ma boucle échoue car elle passe le dernier élément, je peux utiliser typeof pour attraper ça. MDN Document https://developer.mozilla.org/fr/JavaScript/Reference/Operators/Special/typeof –