Ich möchte ein bestimmtes Tag-Element mit seinen Attributen aus dem DOM abrufen. Zum Beispiel von
%Vor% Ich möchte <a href="#" class="class">
, optional mit einem schließenden </a>
, entweder als String oder ein anderes Objekt erhalten.
Meiner Meinung nach wäre dies vergleichbar mit dem Aufruf von .outerHTML
ohne .innerHTML
.
Schließlich muss ich einige andere Elemente über jQuery einbinden. Ich habe es versucht
%Vor% aber .get()
gibt das DOM-Element einschließlich seines Inhalts zurück. Auch
schlägt fehl, da elem.attributes
eine NamedNodeMap
zurückgibt, was nicht mit jQuerys attr()
funktioniert und ich konnte es nicht konvertieren.
Zugegeben, dass die obigen Beispiele nicht sehr sinnvoll sind, da sie auch die nicht länger eindeutige ID des Elements kopieren. Aber gibt es einen leichten Weg? Vielen Dank.
<a>
besser entspricht. clone()
erstellt eine neue Kopie der übereinstimmenden Elemente und kopiert optional Event-Handler. attr
verwendet, um die ID des Elements zu löschen, damit keine IDs dupliziert werden. empty()
entfernt alle untergeordneten Knoten (" innerHTML
"). Für zukünftige Googler gibt es eine Möglichkeit, dies ohne jQuery zu tun:
%Vor% Da outerHTML
das öffnende Tag enthält, gefolgt von einer Spiegelung dessen, was innerHTML
enthält, können wir die outerHTML von 0 (der Anfang des öffnenden Tags) bis zu der Stelle, an der das innerHTML beginnt, substringieren ( Ende des öffnenden Tags), und da innerHTML eine Spiegelung von outerHTML ist, außer dem öffnenden Tag, bleibt nur das öffnende Tag übrig!
Dies funktioniert mit <br>
-Tags, <meta>
-Tags und anderen leeren Tags:
Da innerHTML in selbstschließenden Tags leer ist und indexOf('')
immer 0 zurückgibt, prüft die obige Änderung auf das Vorhandensein von innerHTML
first.
Tags und Links javascript jquery dom innerhtml outerhtml