¿Cómo puedo convertir un elemento DOM en un elemento jQuery?

278

Estoy creando un elemento con document.createElement (). Ahora, ¿cómo puedo pasarlo a una función que solo toma un objeto Jquery?

$("#id") 

No puedo usarlo, ya que el elemento aún no se ha presentado en la página.

Tanmoy
fuente
2
Esta pregunta debe otorgarse como la mejor pregunta en stackoverflow
Oliver

Respuestas:

446
var elm = document.createElement("div");
var jelm = $(elm);//convert to jQuery Element
var htmlElm = jelm[0];//convert to HTML Element
Mario
fuente
10
Esto funciona porque jquery tomará no solo un selector de cadena, sino un objeto jquery existente o cualquier objeto dom válido como argumento para la función de consulta principal $ ().
Samuel Meacham el
¿Qué pasa con el reverso? ¿Tienes un elemento jquery y quieres convertirlo en un elemento dom?
Ryan Sampson
2
Lo contrario puede hacerse por: johnjianfang.blogspot.com/2009/04/…
Ryan Sampson
Muy útil
Oliver
Hola @Marius, ¿funcionará esto si elm contiene una colección de nodos DOM?
daremkd
16

¿Qué hay de construir el elemento usando jQuery? p.ej

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

crea un nuevo elemento div, listo para ser agregado a la página. Se puede acortar aún más a

$("<div>")

entonces puede encadenar los comandos que necesita, configurar controladores de eventos y agregarlos al DOM. Por ejemplo

$('<div id="myid">Div Content</div>')
    .bind('click', function(e) { /* event handler here */ })
    .appendTo('#myOtherDiv');
Russ Cam
fuente
2
De hecho, me estoy haciendo el elemento de algún lugar donde no puedo cambiar el código
Tanmoy
2

Hasta ahora, la mejor solución que he hecho:

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