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.


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

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

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);
}
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.