Wie kann ich ein DOM-Element in ein jQuery-Element konvertieren?


277

Ich erstelle ein Element mit document.createElement (). Wie kann ich es nun an eine Funktion übergeben, die nur ein Jquery-Objekt akzeptiert?

$("#id") 

Ich kann es nicht verwenden, da das Element noch nicht auf der Seite gerendert wurde.


2
Diese Frage sollte als die beste Frage im Stapelüberlauf vergeben werden
Oliver

Antworten:


445
var elm = document.createElement("div");
var jelm = $(elm);//convert to jQuery Element
var htmlElm = jelm[0];//convert to HTML Element

10
Dies funktioniert, weil jquery nicht nur einen String-Selektor, sondern auch ein vorhandenes jquery-Objekt oder ein gültiges dom-Objekt als Argument für die Hauptabfragefunktion $ () verwendet.
Samuel Meacham

Was ist mit dem Gegenteil? Sie haben ein jquery-Element und möchten es in ein dom-Element konvertieren?
Ryan Sampson

2
Das Gegenteil kann gemacht werden von: johnjianfang.blogspot.com/2009/04/…
Ryan Sampson

Erstaunlich! Sehr nützlich
Oliver

Hey @Marius, funktioniert das, wenn elm eine Sammlung von DOM-Knoten enthält?
Daremkd

16

Was ist mit der Erstellung des Elements mit jQuery? z.B

$("<div></div>")

Erstellt ein neues div-Element, das der Seite hinzugefügt werden kann. Kann weiter verkürzt werden

$("<div>")

Anschließend können Sie die erforderlichen Befehle verketten, Ereignishandler einrichten und an das DOM anhängen. Beispielsweise

$('<div id="myid">Div Content</div>')
    .bind('click', function(e) { /* event handler here */ })
    .appendTo('#myOtherDiv');

2
Eigentlich
bekomme

2

Bisher beste Lösung, die ich gemacht habe:

function convertHtmlToJQueryObject(html){
    var htmlDOMObject = new DOMParser().parseFromString(html, "text/html");
    return $(htmlDOMObject.documentElement);
}
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.