Gibt es eine Abkürzung für das JavaScript document.getElementById? Oder kann ich eine definieren? Es wird sich wiederholende Abtippen , dass über und über .
javascript
Fox Wilson
quelle
quelle
Antworten:
Hier habe ich verwendet
$
, aber Sie können jeden gültigen Variablennamen verwenden.quelle
$
, herzlichen Glückwunsch auch dazu?"$
wenn Sie sie nie laden.var $ = document.getElementById.bind(document)
, ist aberbind
nicht in allen Browsern verfügbar. Vielleicht ist es aber schneller, weil ich nur native Methoden verwende. Ich wollte das nur hinzufügen.Um ein zusätzliches Zeichen zu speichern, können Sie den String-Prototyp folgendermaßen verschmutzen:
Es funktioniert in einigen Browsern und Sie können auf folgende Weise auf Elemente zugreifen:
Ich habe den Namen der Immobilie fast zufällig gewählt. Wenn Sie diese Kurzform tatsächlich verwenden möchten, würde ich vorschlagen, etwas zu finden, das einfacher zu tippen ist.
quelle
Sie können leicht selbst eine Kurzschrift erstellen:
quelle
Eine schnelle Alternative, um einen Beitrag zu leisten:
Dann machen Sie einfach:
Es gibt einen Haken, es funktioniert nicht in Browsern, mit denen Sie keine Prototypen erweitern können (z. B. IE6).
quelle
prototype.js
denen genau dasselbe getan wurde.(Abkürzung, um nicht nur das Element nach ID abzurufen, sondern auch das Element nach Klasse: P)
Ich benutze so etwas wie
Verwendung:
_(".test")
Gibt alle Elemente mit dem Klassennamentest
und_("#blah")
ein Element mit der ID zurückblah
.quelle
document.querySelectorAll
, anstatt zu versuchen, einen Teil derquerySelectorAll
Methode in einer benutzerdefinierten Funktion zu emulieren .IDs werden im gespeichert
window
.HTML
JS
ist das gleiche wie schreiben:
Ich schlage nicht vor, die erstere Methode zu verwenden, da dies nicht üblich ist.
quelle
<div id="location"></div>
und anrufenwindow.location
wird nicht funktionieren.Hier gibt es mehrere gute Antworten und einige tanzen um die jQuery-ähnliche Syntax, aber nicht eine erwähnt tatsächlich die Verwendung von jQuery. Wenn Sie nicht dagegen sind, probieren Sie jQuery aus . So können Sie ganz einfach Elemente auswählen.
Nach ID :
Nach CSS-Klasse :
Nach Elementtyp :
quelle
quelle
Es ist keine eingebaut.
Wenn es Ihnen nichts ausmacht, den globalen Namespace zu verschmutzen, warum nicht:
BEARBEITEN - Ich habe den Funktionsnamen in etwas Ungewöhnliches geändert , aber kurz und nicht in Konflikt mit jQuery oder etwas anderem, das ein nacktes
$
Zeichen verwendet.quelle
Ja, es wird wiederholend die gleiche Funktion zu verwenden , über und über jedes Mal mit einem anderen Argumente:
Eine schöne Sache wäre also eine Funktion, die alle diese Argumente gleichzeitig akzeptiert:
Dann hätten Sie Verweise auf alle Ihre Elemente in einem Objekt gespeichert:
Aber Sie müssten immer noch alle diese IDs auflisten.
Sie können es noch weiter vereinfachen, wenn Sie alle Elemente mit IDs möchten :
Es wäre jedoch ziemlich teuer, diese Funktion aufzurufen, wenn Sie viele Elemente haben.
Wenn Sie also theoretisch das
with
Schlüsselwort verwenden würden, könnten Sie Code wie folgt schreiben:Aber ich möchte die Verwendung von nicht fördern
with
. Wahrscheinlich gibt es einen besseren Weg, dies zu tun.quelle
Nun, Sie könnten eine Kurzfunktion erstellen, das ist was ich tue.
und dann, wenn Sie es bekommen wollten, tun Sie es einfach
Ein weiterer nützlicher Trick, den ich gefunden habe, ist, dass Sie Funktionen wie die folgenden ausführen können, wenn Sie den Wert oder das innerHTML einer Element-ID abrufen möchten:
Hoffe du magst es!
Ich habe tatsächlich eine Art Mini-Javascript-Bibliothek erstellt, die auf dieser ganzen Idee basiert. Hier ist es.
quelle
Ich benutze häufig:
Ich denke, es ist besser als eine externe Funktion (zB
$()
oderbyId()
), weil Sie solche Dinge tun können:Übrigens, verwenden Sie jQuery nicht dafür, jQuery ist viel, viel langsamer als
document.getElementById()
eine externe Funktion wie$()
oderbyId()
oder meine Methode: http://jsperf.com/document-getelementbyid-vs-jquery/5quelle
Wenn sich dies auf Ihrer eigenen Site befindet, sollten Sie eine Bibliothek wie jQuery verwenden , um diese und viele andere nützliche Abkürzungen zu erhalten, die auch Browserunterschiede beseitigen. Persönlich würde ich jQuery einschließen, wenn ich genug Code schreiben würde, um von der Langschrift gestört zu werden.
In jQuery wäre die Syntax
$("#someid")
. Wenn Sie dann das eigentliche DOM-Element und nicht den jQuery-Wrapper möchten, ist dies der Fall$("#someid")[0]
, aber Sie können höchstwahrscheinlich mit dem jQuery-Wrapper alles tun, was Sie suchen.Wenn Sie dies in einer Browser-Entwicklerkonsole verwenden, informieren Sie sich über die integrierten Dienstprogramme. Wie bereits erwähnt, enthält die Chrome JavaScript-Konsole eine
$("someid")
Methode. Sie können auch in der Ansicht "Elemente" der Entwicklertools auf ein Element klicken und es dann$0
über die Konsole referenzieren . Das zuvor ausgewählte Element wird$1
und so weiter.quelle
Wenn das einzige Problem hier das Tippen ist, sollten Sie sich vielleicht einfach einen JavaScript-Editor mit Intellisense zulegen.
Wenn der Zweck darin besteht, kürzeren Code zu erhalten, können Sie eine JavaScript-Bibliothek wie jQuery in Betracht ziehen oder einfach Ihre eigenen Kurzfunktionen schreiben, z.
Ich habe das oben genannte getan, um eine bessere Leistung zu erzielen. Was ich letztes Jahr gelernt habe, ist, dass der Server es mit Komprimierungstechniken automatisch für Sie erledigt, sodass meine Verkürzungstechnik meinen Code tatsächlich schwerer machte. Jetzt bin ich nur noch glücklich mit der Eingabe des gesamten document.getElementById.
quelle
Wenn Sie nach einer Kurzfunktion fragen ...
oder
quelle
Pfeilfunktionen machen ist kürzer.
quelle
id
Argument einschließen .Wrap the document.querySelectorAll ... eine Abfrage wie select
quelle
$('#myId')
abzurufen, sollte es normalerweise dieses HTMLElement zurückgeben, da Sie diese ID hoffentlich genau einmal zugewiesen haben. Wenn Sie es jedoch für Abfragen verwenden, die möglicherweise mit mehreren Elementen übereinstimmen, wird es umständlich.Wenn die ID des Elements nicht mit den Eigenschaften des globalen Objekts konkurriert, müssen Sie keine Funktion verwenden.
edit: Aber du willst diese 'Funktion' nicht nutzen.
quelle
Ein weiterer Wrapper:
Dies, falls Sie das Undenkbare nicht verwenden möchten , siehe oben.
quelle
Ich habe das gestern geschrieben und fand es ziemlich nützlich.
So verwenden Sie es.
quelle