Jak przekonwertować element DOM na element jQuery?

277

Tworzę element za pomocą document.createElement (). W jaki sposób mogę przekazać go do funkcji, która pobiera tylko obiekt Jquery?

$("#id") 

Nie mogę go użyć, ponieważ element nie został jeszcze renderowany na stronie.

Tanmoy
źródło
2
To pytanie powinno zostać uznane za najlepsze pytanie w przepełnieniu stosu
Oliver,

Odpowiedzi:

445
var elm = document.createElement("div");
var jelm = $(elm);//convert to jQuery Element
var htmlElm = jelm[0];//convert to HTML Element
Marius
źródło
10
Działa to, ponieważ jquery weźmie nie tylko selektor ciągów, ale istniejący obiekt jquery lub dowolny prawidłowy obiekt dom jako argument głównej funkcji zapytania $ ().
Samuel Meacham
Co z odwrotnością? Masz element jquery i chcesz przekonwertować go na element dom?
Ryan Sampson,
2
Odwrotną czynność
Ryan Sampson
Niesamowite! Bardzo przydatne
Oliver,
Hej @Marius, czy to zadziała, jeśli wiąz zawiera zbiór węzłów DOM?
daremkd
16

Co z budowaniem elementu za pomocą jQuery? na przykład

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

tworzy nowy element div, gotowy do dodania do strony. Można skrócić dalej do

$("<div>")

następnie możesz połączyć potrzebne komendy, skonfigurować programy obsługi zdarzeń i dołączyć je do DOM. Na przykład

$('<div id="myid">Div Content</div>')
    .bind('click', function(e) { /* event handler here */ })
    .appendTo('#myOtherDiv');
Russ Cam
źródło
2
tak naprawdę otrzymuję ten element z miejsca, w którym nie mogę zmienić kodu
Tanmoy,
2

Jak dotąd najlepsze rozwiązanie, które stworzyłem:

function convertHtmlToJQueryObject(html){
    var htmlDOMObject = new DOMParser().parseFromString(html, "text/html");
    return $(htmlDOMObject.documentElement);
}
Igor Maculewicz
źródło