Existe-t-il un raccourci pour le JavaScript document.getElementById? Ou est-ce que je peux en définir un? Il obtient refrappe répétitif que plus et plus .
javascript
Fox Wilson
la source
la source
Réponses:
Ici, j'ai utilisé
$
, mais vous pouvez utiliser n'importe quel nom de variable valide.la source
$
, félicitations d'avoir choisi cela aussi?"$
si vous ne les chargez jamais.var $ = document.getElementById.bind(document)
, mais cebind
n'est pas disponible dans tous les navigateurs. C'est peut-être plus rapide, car je n'utilise que des méthodes natives. Je voulais juste ajouter ceci.Pour enregistrer un caractère supplémentaire, vous pouvez polluer le prototype String comme ceci:
Cela fonctionne dans certains navigateurs et vous pouvez accéder aux éléments de cette façon:
J'ai choisi le nom de la propriété presque au hasard. Si vous vouliez réellement utiliser ce raccourci, je vous suggère de trouver quelque chose de plus facile à taper.
la source
Vous pouvez facilement créer vous-même une sténographie:
la source
Une alternative rapide pour contribuer:
Alors faites simplement:
Il y a un hic, cela ne fonctionne pas dans les navigateurs qui ne vous permettent pas d'étendre les prototypes (par exemple IE6).
la source
prototype.js
faire exactement la même chose.(Raccourci pour non seulement obtenir élément par ID, mais aussi obtenir élément par classe: P)
J'utilise quelque chose comme
Utilisation:
_(".test")
retourne tous les éléments avec le nom de la classetest
et_("#blah")
retourne un élément avec l'idblah
.la source
document.querySelectorAll
, au lieu d'essayer d'émuler une partie de laquerySelectorAll
méthode dans une fonction personnalisée.la source
les identifiants sont enregistrés dans le fichier
window
.HTML
JS
équivaut à écrire:
Je ne suggère pas d'utiliser l'ancienne méthode car ce n'est pas une pratique courante.
la source
<div id="location"></div>
et l'appelwindow.location
ne fonctionnera pas.Il y a plusieurs bonnes réponses ici et plusieurs dansent autour de la syntaxe de type jQuery, mais aucune ne mentionne réellement l'utilisation de jQuery. Si vous n'êtes pas contre l'essayer, consultez jQuery . Cela vous permet de sélectionner des éléments très facilement comme celui-ci.
Par ID :
Par classe CSS :
Par type d'élément :
la source
Il n'y a aucun intégré.
Si cela ne vous dérange pas de polluer l'espace de noms global, pourquoi pas:
EDIT - J'ai changé le nom de la fonction pour être quelque chose d' inhabituel , mais court et pas autrement en conflit avec jQuery ou toute autre chose qui utilise un
$
signe nu .la source
Oui, il devient répétitif d'utiliser la même fonction encore et encore à chaque fois avec un argument différent:
Donc, une bonne chose serait une fonction qui prend tous ces arguments en même temps:
Ensuite, vous auriez des références à tous vos éléments stockés dans un seul objet:
Mais vous devrez tout de même répertorier tous ces identifiants.
Vous pouvez le simplifier encore plus si vous voulez tous les éléments avec des identifiants:
Mais il serait assez coûteux d'appeler cette fonction si vous avez de nombreux éléments.
Donc, théoriquement, si vous utilisiez le
with
mot - clé, vous pourriez écrire un code comme celui-ci:Mais je ne veux pas promouvoir l'utilisation de
with
. Il existe probablement une meilleure façon de le faire.la source
Eh bien, vous pouvez créer une fonction de raccourci, c'est ce que je fais.
Et puis quand tu voulais l'obtenir, tu fais juste
De plus, une autre astuce utile que j'ai trouvée est que si vous voulez obtenir la valeur ou le innerHTML d'un ID d'élément, vous pouvez créer des fonctions comme celle-ci:
J'espère que vous aimez!
J'ai en fait créé une sorte de mini bibliothèque javascript basée sur toute cette idée. La voici .
la source
J'utilise fréquemment:
Je pense que c'est mieux qu'une fonction externe (par exemple
$()
oubyId()
) parce que vous pouvez faire des choses comme ça:Btw, n'utilisez pas jQuery pour cela, jQuery est beaucoup, beaucoup plus lent qu'une
document.getElementById()
fonction externe comme$()
oubyId()
, ou ma méthode: http://jsperf.com/document-getelementbyid-vs-jquery/5la source
Si cela se trouve sur votre propre site, envisagez d'utiliser une bibliothèque comme jQuery pour vous donner cela et de nombreux autres raccourcis utiles qui évitent également les différences de navigateur. Personnellement, si j'écrivais suffisamment de code pour être dérangé par le longhand, j'inclurais jQuery.
Dans jQuery, la syntaxe serait
$("#someid")
. Si vous voulez ensuite l'élément DOM réel et non le wrapper jQuery, c'est$("#someid")[0]
, mais vous pouvez très probablement faire ce que vous voulez avec le wrapper jQuery.Ou, si vous l'utilisez dans une console de développeur de navigateur, recherchez leurs utilitaires intégrés. Comme quelqu'un d'autre l'a mentionné, la console Chrome JavaScript comprend une
$("someid")
méthode, et vous pouvez également cliquer sur un élément dans la vue "Éléments" des outils de développement, puis le référencer à$0
partir de la console. L'élément précédemment sélectionné devient$1
et ainsi de suite.la source
Si le seul problème ici est la saisie, vous devriez peut-être vous procurer un éditeur JavaScript avec intellisense.
Si le but est d'obtenir un code plus court, vous pouvez envisager une bibliothèque JavaScript comme jQuery, ou vous pouvez simplement écrire vos propres fonctions abrégées, comme:
J'avais l'habitude de faire ce qui précède pour de meilleures performances. Ce que j'ai appris l'année dernière, c'est qu'avec les techniques de compression, le serveur le fait automatiquement pour vous, donc ma technique de raccourcissement alourdissait en fait mon code. Maintenant, je suis juste content de taper tout le document.getElementById.
la source
Si vous demandez une fonction de raccourci ...
ou
la source
Les fonctions fléchées font est plus courte.
la source
id
argument.envelopper le document.querySelectorAll ... une jquery comme select
la source
$('#myId')
il doit généralement renvoyer ce HTMLElement, car vous avez, espérons-le, attribué cet identifiant exactement une fois. Mais si vous l'utilisez avec des requêtes pouvant correspondre à plusieurs éléments, cela devient fastidieux.Eh bien, si l'id de l'élément n'est en concurrence avec aucune propriété de l'objet global, vous ne devez utiliser aucune fonction.
edit: Mais vous ne voulez pas utiliser cette «fonctionnalité».
la source
Un autre emballage:
Ceci, au cas où vous ne voudriez pas utiliser l' impensable , voyez ci-dessus.
la source
J'ai écrit ceci hier et l'ai trouvé très utile.
Voici comment vous l'utilisez.
la source