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.

Tanmoy
quelle
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
Marius
quelle
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');
Russ Cam
quelle
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);
}
Igor Maculewicz
quelle