Come posso convertire un elemento DOM in un elemento jQuery?


278

Sto creando un elemento con document.createElement (). Ora come posso passarlo a una funzione che accetta solo un oggetto Jquery?

$("#id") 

Non posso usarlo, in quanto l'elemento non è stato ancora visualizzato nella pagina.


2
Questa domanda dovrebbe essere assegnata come la migliore domanda in StackOverflow
Oliver

Risposte:


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

10
Questo funziona perché jquery accetta non solo un selettore di stringhe, ma un oggetto jquery esistente o qualsiasi oggetto dom valido come argomento per la funzione di query $ () principale.
Samuel Meacham,

Che dire del contrario? Hai un elemento jquery e vuoi convertirlo in un elemento dom?
Ryan Sampson

2
Il contrario può essere fatto da: johnjianfang.blogspot.com/2009/04/…
Ryan Sampson

Incredibile! Molto utile
Oliver,

Ehi, @Marius funzionerà se elm contiene una raccolta di nodi DOM?
daremkd,

16

Che ne dici di costruire l'elemento usando jQuery? per esempio

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

crea un nuovo elemento div, pronto per essere aggiunto alla pagina. Può essere ridotto ulteriormente a

$("<div>")

quindi è possibile concatenare i comandi necessari, impostare i gestori di eventi e aggiungerli al DOM. Per esempio

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

2
in realtà sto ricevendo l'elemento da qualche parte in cui non posso cambiare il codice
Tanmoy,

2

Finora la migliore soluzione che ho realizzato:

function convertHtmlToJQueryObject(html){
    var htmlDOMObject = new DOMParser().parseFromString(html, "text/html");
    return $(htmlDOMObject.documentElement);
}
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.