Как я могу преобразовать элемент DOM в элемент jQuery?

278

Я создаю элемент с document.createElement (). Теперь, как я могу передать его функции, которая принимает только объект Jquery?

$("#id") 

Я не могу использовать его, так как элемент еще не отображен на странице.

Tanmoy
источник
2
Этот вопрос должен быть отмечен как лучший вопрос в stackoverflow
Оливер

Ответы:

446
var elm = document.createElement("div");
var jelm = $(elm);//convert to jQuery Element
var htmlElm = jelm[0];//convert to HTML Element
Marius
источник
10
Это работает, потому что jquery будет использовать не только строковый селектор, но и существующий объект jquery или любой допустимый объект dom в качестве аргумента основной функции запроса $ ().
Самуэль Мичам
Как насчет обратного? У вас есть элемент jquery и вы хотите преобразовать его в элемент dom?
Райан Сэмпсон
2
Обратное можно сделать: johnjianfang.blogspot.com/2009/04/…
Райан Сэмпсон
Удивительно! Очень полезно
Оливер
Эй, @Marus, будет ли это работать, если elm содержит коллекцию DOM-узлов?
daremkd
16

Как насчет создания элемента с использованием jQuery? например

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

создает новый элемент div, готовый для добавления на страницу. Можно сократить до

$("<div>")

Затем вы можете связать нужные вам команды, настроить обработчики событий и добавить их в DOM. Например

$('<div id="myid">Div Content</div>')
    .bind('click', function(e) { /* event handler here */ })
    .appendTo('#myOtherDiv');
Русь Кэм
источник
2
на самом деле я получаю элемент откуда-то, где я не могу изменить код
Tanmoy
2

Пока лучшее решение, которое я сделал:

function convertHtmlToJQueryObject(html){
    var htmlDOMObject = new DOMParser().parseFromString(html, "text/html");
    return $(htmlDOMObject.documentElement);
}
Игорь Макулевич
источник