Ich versuche, das Element in HTML von anglejs zu finden.
Hier ist das HTML:
<button class="btn btn-primary multi-files" type="button">
<span>Choose multiple files</span>
</button>
<br/><br/>
<input ng-file-select type="file" multiple style="display: none"/><br/>
Ich versuche, das Schaltflächenelement anhand des Klassennamens Multi-Dateien abzurufen, dann habe ich es versucht
var multibutton = angular.element(element.getElementsByClassName(".multi-files"));
Aber es funktioniert nicht und versucht element.find
aber es funktioniert nur für Tag.
Gibt es eine Funktion, die ein Element anhand der ID oder des Klassennamens in anglejs abrufen kann?
Antworten:
getElementsByClassName
ist eine Funktion im DOM-Dokument. Es ist weder eine jQuery- noch eine jqLite-Funktion.Fügen Sie bei Verwendung nicht den Punkt vor dem Klassennamen hinzu:
Wickeln Sie es in jqLite (oder jQuery, wenn jQuery vor Angular geladen wird):
Wenn Sie aus der
element
Verknüpfungsfunktion einer Direktive auswählen möchten, müssen Sie auf die DOM-Referenz anstelle der jqLite-Referenz zugreifen -element[0]
anstelle vonelement
:Alternativ können Sie die
document.querySelector
Funktion verwenden (benötigen Sie den Punkt hier, wenn Sie nach Klasse auswählen):Demo: http://plnkr.co/edit/AOvO47ebEvrtpXeIzYOH?p=preview
quelle
Sie müssen keine hinzufügen
.
ingetElementsByClassName
, das heißtBei der Verwendung
angular.element
müssen Sie jedoch JQuery-Stil-Selektoren verwenden:sollte den Trick machen.
In dieser Dokumentation heißt es außerdem: "Wenn jQuery verfügbar ist, ist angle.element ein Alias für die jQuery-Funktion. Wenn jQuery nicht verfügbar ist, delegiert angle.element an Angulars integrierte Teilmenge von jQuery, die als" jQuery lite "oder" jqLite "bezeichnet wird. ""
quelle
Die Antwort von @ tasseKATT ist großartig, aber wenn Sie keine Direktive erstellen möchten, warum nicht
$document
?PLUNKR
quelle
angular.element('#Your element id')
macht den gleichen Job.Wenn Sie die Schaltfläche nur anhand ihres Klassennamens und nur mit jQLite suchen möchten, können Sie Folgendes tun:
Hoffe das hilft. :) :)
quelle