Créer un alias de document.getElementById en Javascript
Comment puis-je l'alias de la fonction "document.getElementById"
Je l'ai vu fait à l'aide de $
Grâce
Un plus intelligent aurait été de lui demander comment créer un alias à n'importe quelle profondeur; par exemple,
document.getElementById('example').tag('div')
même si, comme d'habitude, je vais vous poser cette question et à la fin de l'avoir marquée comme une dup par une dup. 😑OriginalL'auteur Supernovah | 2009-06-05
Vous devez vous connecter pour publier un commentaire.
Probablement la plus facile et la plus courte:
Function.apply
. Forme la plus courte estfunction $(s) { return document.getElementById(s) }
Vous êtes de droite. Je pensais que getElementById peut prendre une seconde en option paramètre d'étendue, mais la recherche de la spec (w3.org/TR/DOM-Level-2-Core/core.html#ID-getElBId) ce n'est pas le cas. Modifié.
C'est le seul qui répond à la question sans chercher à ajouter toutes sortes de fioritures
OriginalL'auteur Chris Lloyd
OriginalL'auteur Adria
Voici quelque chose que j'utilise dans ma propre bibliothèque.
DOM
est la classe et$
est une fonction qui est un raccourci de la mise en œuvre de lagetElementById
fonction:Utilisation:
Vous pouvez alias haut niveau de l'élément de fenêtre.
var DOM = {'$': function(ids) {...}}
. Aussi, votre réponse ne beaucoup plus que ce qui était demandé, OP demandé un alias du document.getElementById. Si vous voulez jQuery comportement, il suffit d'utiliser jQuery plutôt que de réinventer la roueOriginalL'auteur Cerebrus
Les nouvelles fonctionnalités introduites dans l'ES6 laissez-nous améliorer sur Chris Lloyd réponse de la simplification:
:
OriginalL'auteur machineghost
Ceci suppose que vous ne voulez utiliser que la fonction dollar (sélecteur) pour obtenir un numéro d'identification. Je n'ai pas fait de test, mais il devrait fonctionner.
La dernière fois que j'ai regardé la base de jQuery, il est pris d'une chaîne comme argument, puis utilisé une expression régulière pour déterminer quel type de sélecteur de il était.
Vous pouvez retourner la valeur null au lieu de la chaîne si vous le souhaitez. En jQuery, un vide de l'objet jQuery est retournée si aucun ID n'est trouvé. Si vous ne faites pas quelque chose comme ça, puis vous obtenez indéfini. Tout cela n'était de donner un exemple de la valeur du dollar sélecteur en action.
Il n'a pas demandé un jquery $, juste un alias du document.getElementById.
OriginalL'auteur
facebook connect-js effectue les opérations suivantes dans src/core/prelude.js:
Ensuite, pour l'utiliser, ils n':
Le bloc initial crée l'objet global FB. L'utilisation de cet objet, FB, comme un espace de noms et de leurs objets, les propriétés et les fonctions. De cette façon, il va travailler avec du code JavaScript, tant que l'autre code n'utilise pas l'objet global FB.
c'est désormais une réponse...
OriginalL'auteur ma11hew28
Quand vous avez vu le $ (), fonction, il avait probablement une bibliothèque comme jQuery ou Prototype. La fonction $ n'est pas un alias pour le document.getElementById, mais est un wrapper qui étend les fonctionnalités de la fonction.
Pour créer votre propre emballage, vous pouvez écrire une fonction "alias":
ou
Mais vraiment, je voudrais utiliser l'une des bibliothèques comme jQuery ou Prototype.
dans toutes les conditions/utiliser cet alias sera jamais de fonctionnent pas dans IE6/7? J'ai eu un " bug " aujourd'hui, dans certains anciens code et le problème a été résolu par le remplacement de l'alias avec le document.getElementById. J'ai effectivement utilisé le deuxième type de fonction "alias" ci-dessus. Des idées?
Le " var alias = document.getElementById partie de cette réponse est incorrecte. Création d'un alias comme démontré ici ne fonctionne pas dans Firefox ou Google Chrome. Voir stackoverflow.com/questions/1007340 pour plus d'informations.
Pour de Subvention de Wagner commentaire, la raison pour laquelle
alias = document.getElementById
ne fonctionne pas, c'est que lorsque vous appelezalias()
, il n'est pas en passant documentthis
dans la fonction.OriginalL'auteur Marquis Wang