Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1320 connectés 

  FORUM HardWare.fr
  Programmation
  HTML/CSS

  méthode getElementById() : vraiment utile ?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

méthode getElementById() : vraiment utile ?

n°1486263
jokari34
Posté le 04-12-2006 à 17:54:58  profilanswer
 

bonjour
 
J'ai vu que pour accéder à un élement HTML via le DOM, en Javascript
il ya 2 facons :
- document.getElementById('IdElement').innerHTML (par ex)
- IdElement.innerHTML
 
dans ce cas, quel est l'intéret de passer par la méthode getElementById() si on peut y accéder directement par son id (sous réserver que l'id soit unique dans l'arbre (ce qui est censé etre le cas) ) ?
 
Je pensais que c'etait une question de compatibiltié inter navigateurs, mais les 2 facon marchent aussi bien sous IE que FF (mais j'ai pas essayé sur d'autres)

mood
Publicité
Posté le 04-12-2006 à 17:54:58  profilanswer
 

n°1486289
gebruik
Posté le 04-12-2006 à 18:24:39  profilanswer
 

getElementById te permet de récupérer une valeur ou un contenu et donc de faire un traitement.

n°1486299
anapajari
s/travail/glanding on hfr/gs;
Posté le 04-12-2006 à 18:40:29  profilanswer
 

la deuxième c'est pas du DOM [:spamafote]
Je pense que c'est un vieu relent de la methode oldSch00lz d'accès aux éléments d'une page HTML.
edit: par ailleurs getElementById te renvoie un objet de type node element, et l'autre ... euh ... j'en sais rien [:cupra]


Message édité par anapajari le 04-12-2006 à 18:41:17
n°1486320
FlorentG
Unité de Masse
Posté le 04-12-2006 à 19:36:13  profilanswer
 

jokari34 a écrit :

dans ce cas, quel est l'intéret de passer par la méthode getElementById() si on peut y accéder directement par son id


Lapin compris. getElementById permet justement d'accéder à un élément par son id. Tout autre méthode n'est pas standard. On pourra aussi utiliser un alias, genre la fonction $ de prototype pour plus de légèreté

n°1486424
gatsu35
Blablaté par Harko
Posté le 05-12-2006 à 04:31:06  profilanswer
 

FlorentG a écrit :

Lapin compris. getElementById permet justement d'accéder à un élément par son id. Tout autre méthode n'est pas standard. On pourra aussi utiliser un alias, genre la fonction $ de prototype pour plus de légèreté


Juste un petit conseil en passant.
Lorsque vous êtes amenés à faire pas mal de JS, je ne pense pas trop utile d'utiliser tout de suite une lib, mais plutôt les parties d'une lib. Où le mieux c'est d'avoir un jeu de helpers fonctions sous la main, qui font gagner du temps pour l'écriture du code.
 
parmis ces fonctions pas mal sont tirées de quirksmode. Je ne le cache pas, on va pas réinventer la roue.

Code :
  1. //Add Events
  2. function addEvent( obj, type, fn ) {
  3. if (obj.addEventListener)
  4.  obj.addEventListener( type, fn, false );
  5. else if (obj.attachEvent) {
  6.  obj["e"+type+fn] = fn;
  7.  obj[type+fn] = function() { obj["e"+type+fn]( window.event ); }
  8.  obj.attachEvent( "on"+type, obj[type+fn] );
  9. }
  10. }
  11. /* $: shortcut for document.getElementById*/
  12. function $(obj) {
  13. if(typeof obj == "string" ) {
  14.  return document.getElementById(obj);
  15. } else {
  16.  return obj;
  17. }
  18. }
  19. /*getElementsByClassName: return an array of Objects with specified className*/
  20. function getElementsByClassName(oElm, sTagName, sClassName){
  21.     var aElements = (sTagName == "*" && oElm.all)? oElm.all : oElm.getElementsByTagName(sTagName);
  22. var aReturnElements = new Array();
  23.     sClassName = sClassName.replace(/\-/g, "\\-" );
  24. var oRegExp = new RegExp("(^|\\s)" + sClassName + "(\\s|$)" );
  25. var oElement;
  26. for(var i=0; i < aElements.length; i++){
  27.      oElement = aElements[i];
  28.  if(oRegExp.test(oElement.className))
  29.             aReturnElements.push(oElement);
  30.     }
  31. return aReturnElements
  32. }
  33. /*findPos: return position of an element*/
  34. function findPos(obj) {
  35. var curleft = curtop = 0;
  36. if (obj.offsetParent) {
  37.  curleft = obj.offsetLeft
  38.  curtop = obj.offsetTop
  39.  while (obj = obj.offsetParent) {
  40.   curleft += obj.offsetLeft
  41.   curtop += obj.offsetTop
  42.  }
  43. }
  44. return [curleft,curtop];
  45. }
  46. // getStyle : retourne la valeur d'une propriété CSS appliquée à un élément
  47. function getStyle(oElm, strCssRule){
  48.     var strValue = "";
  49.     if(document.defaultView && document.defaultView.getComputedStyle) {
  50.  try{ strValue = document.defaultView.getComputedStyle(oElm, "" ).getPropertyValue(strCssRule); }
  51.  catch(e) { strValue = ""; }
  52.     }
  53.     else if(oElm.currentStyle) {
  54.         try{
  55.   strCssRule = strCssRule.replace(/\-(\w)/g, function (strMatch, p1){
  56.             return p1.toUpperCase();
  57.         });
  58.         strValue = oElm.currentStyle[strCssRule];
  59.  } catch(e) {
  60.   strValue = "";
  61.  }
  62.     }
  63.     return strValue;
  64. }
  65. /*retourne la valeur entière d'un style*/
  66. function intStyle(oElm, strCSSRule) {
  67. var val = parseInt(getStyle(oElm, strCSSRule));
  68. if (isNaN(val)) val=0;
  69. return val;
  70. }
  71. /* getText: retourne le contenu texte d'un élément */
  72. function getText(elm) {
  73. if (elm.innerText) {
  74.  return elm.innerText;
  75. } else {
  76.  return elm.textContent;
  77. }
  78. }

n°1486479
FlorentG
Unité de Masse
Posté le 05-12-2006 à 09:52:27  profilanswer
 

Ton addEvent risque de leaker, non ? L'avantage de frameworks comme prototype ou Yahoo! UI, c'est qu'ils nettoient tous les events à la fermeture de la page, à méditer.
 
Sinon pour getElementByClassName, je serais partant de la renommer en quelque chose de plus court (on pourrait avoir $id('pouet') et $class('tagada') par exemple)

n°1486546
gatsu35
Blablaté par Harko
Posté le 05-12-2006 à 11:36:55  profilanswer
 

pas bête chérie, pas bete :o


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  HTML/CSS

  méthode getElementById() : vraiment utile ?

 

Sujets relatifs
Texte changé après envoi via méthode postMéthode de Connexion MySQL
Aide MACRO (desole je suis vraiment un nul en macro)methode du retour inverse à la comprehension
différence entre fonction et méthodeSurcharge d'une méthode appartenent à un patron de classe
Envoi par méthode _Post quand on appuie sur un lien?[C] Méthode replace de la classe string
[VB.NET] Fermer un process ouvert avec la méthode "GetObject" ???[Access] Méthode hébergement Server.mdb et client utilisateur final
Plus de sujets relatifs à : méthode getElementById() : vraiment utile ?


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR