Question

Quand je dois changer un texte dans un élément span, lequel dois-je utiliser et quelle est la différence:

var spnDetailDisplay=document.getElementById('spnDetailDisplay');
spnDetailDisplay.innerText=sDetail;

ou

 var spnDetailDisplay=document.getElementById('spnDetailDisplay');
 spnDetailDisplay.childNodes[0].nodeValue=sDetail;
Était-ce utile?

La solution

Pour les éléments avec le contenu du texte, ils sont les mêmes. Voir cet article MDC des informations sur nodeValue.

De cet article :

  

Si l'élément n'a pas de sous-éléments, juste le texte, il (normalement) a un nœud enfant, accessible en tant que ElemRef.childNodes[0]. Dans ce cas précis, les standards Web du W3C équivalent de ElemRef.innerText est ElemRef.childNodes[0].nodeValue.

Autres conseils

  • nodeValue est W3C recommandation standard.
  • innerText est Internet Explorer spécifique, et non la norme. Et:
    • Ne renvoie le contenu de <script> et <style>.
    • prise de conscience de style, ne renvoie pas le texte des éléments cachés.
    • prise de conscience de style CSS, il déclenchera une refusion.

Cependant, dans les versions de tous les principaux navigateurs à partir de Mars 2016 innerText est pris en charge.

En général, ils sont similaires, mais si vous avez besoin de meilleures performances, nodeValue doit être utilisé.

Lien pour le test de performance: https: // jsperf.com/read-innerhtml-vs-innertext-vs-nodevalue-vs-textcontent/13

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top