Як можна перетворити елемент DOM в елемент jQuery?


277

Я створюю елемент з document.createElement (). Тепер як я можу передати його функції, яка приймає лише об'єкт Jquery?

$("#id") 

Я не можу ним користуватися, оскільки елемент ще не відображений на сторінці.


2
Це питання має бути присвоєно як найкраще запитання у стакіовертоці
Олівер

Відповіді:


445
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/…
Ryan Sampson,

Дивовижно! Дуже корисно
Олівер

Ей, @Marius, це спрацює, якщо 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.