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


278

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

$("#id") 

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


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

Ответы:


446
var elm = document.createElement("div");
var jelm = $(elm);//convert to jQuery Element
var htmlElm = jelm[0];//convert to HTML Element

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);
}
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.