¿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.


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

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

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);
}
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.