Como posso converter um elemento DOM em um elemento jQuery?

277

Estou criando um elemento com document.createElement (). Agora, como posso passá-lo para uma função que aceita apenas um objeto Jquery?

$("#id") 

Não posso usá-lo, pois o elemento ainda não foi renderizado na página.

Tanmoy
fonte
2
Este quesion deve ser premiado como o melhor pergunta em stackoverflow
Oliver

Respostas:

445
var elm = document.createElement("div");
var jelm = $(elm);//convert to jQuery Element
var htmlElm = jelm[0];//convert to HTML Element
Marius
fonte
10
Isso funciona porque o jquery terá não apenas um seletor de cadeias, mas um objeto jquery existente ou qualquer objeto dom válido como argumento para a principal função de consulta $ ().
Samuel Meacham
E o contrário? Você tem um elemento jquery e deseja convertê-lo em um elemento dom?
Ryan Sampson
2
O inverso pode ser feito por: johnjianfang.blogspot.com/2009/04/...
Ryan Sampson
Muito útil
Oliver
Hey @Marius isso funcionará se elm contiver uma coleção de nós DOM?
precisa saber é
16

Que tal construir o elemento usando jQuery? por exemplo

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

cria um novo elemento div, pronto para ser adicionado à página. Pode ser reduzido ainda mais para

$("<div>")

então você pode encadear os comandos necessários, configurar manipuladores de eventos e anexá-los ao DOM. Por exemplo

$('<div id="myid">Div Content</div>')
    .bind('click', function(e) { /* event handler here */ })
    .appendTo('#myOtherDiv');
Russ Cam
fonte
2
Na verdade, eu estou recebendo o elemento de algum lugar onde eu não posso mudar o código
Tanmoy
2

Até agora, a melhor solução que eu fiz:

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