Comment puis-je convertir un élément DOM en élément jQuery?

278

Je crée un élément avec document.createElement (). Maintenant, comment puis-je le passer à une fonction qui ne prend qu'un objet Jquery?

$("#id") 

Je ne peux pas l'utiliser, car l'élément n'a pas encore été rendu dans la page.

Tanmoy
la source
2
Cette question devrait être décernée comme la meilleure question dans stackoverflow
Oliver

Réponses:

446
var elm = document.createElement("div");
var jelm = $(elm);//convert to jQuery Element
var htmlElm = jelm[0];//convert to HTML Element
Marius
la source
10
Cela fonctionne parce que jquery prendra non seulement un sélecteur de chaîne, mais un objet jquery existant ou tout autre objet dom valide comme argument de la fonction de requête principale $ ().
Samuel Meacham
Et l'inverse? Vous avez un élément jquery et souhaitez le convertir en élément dom?
Ryan Sampson
2
L'inverse peut être fait par: johnjianfang.blogspot.com/2009/04/…
Ryan Sampson
Très utile
Oliver
Hey @Marius, cela fonctionnera-t-il si elm contient une collection de nœuds DOM?
daremkd
16

Qu'en est-il de la construction de l'élément à l'aide de jQuery? par exemple

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

crée un nouvel élément div, prêt à être ajouté à la page. Peut être raccourci

$("<div>")

vous pouvez ensuite enchaîner les commandes dont vous avez besoin, configurer des gestionnaires d'événements et les ajouter au DOM. Par exemple

$('<div id="myid">Div Content</div>')
    .bind('click', function(e) { /* event handler here */ })
    .appendTo('#myOtherDiv');
Russ Cam
la source
2
en fait, je reçois l'élément d'un endroit où je ne peux pas changer le code
Tanmoy
2

Jusqu'à présent, la meilleure solution que j'ai faite:

function convertHtmlToJQueryObject(html){
    var htmlDOMObject = new DOMParser().parseFromString(html, "text/html");
    return $(htmlDOMObject.documentElement);
}
Igor Maculewicz
la source