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.


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

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');

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);
}
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.