Làm cách nào tôi có thể chuyển đổi một phần tử DOM thành một phần tử jQuery?


277

Tôi đang tạo một phần tử với document.createEuity (). Bây giờ làm thế nào tôi có thể chuyển nó đến một hàm chỉ lấy một đối tượng Jquery?

$("#id") 

Tôi không thể sử dụng nó, vì phần tử chưa được hiển thị trong trang.


2
Câu hỏi này nên được trao giải là câu hỏi hay nhất trong stackoverflow
Oliver

Câu trả lời:


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

10
Điều này hoạt động vì jquery sẽ không chỉ lấy một bộ chọn chuỗi, mà là một đối tượng jquery hiện có hoặc bất kỳ đối tượng dom hợp lệ nào làm đối số cho hàm truy vấn $ () chính.
Samuel Meacham

Điều gì về ngược lại? Bạn có một yếu tố jquery và muốn chuyển đổi nó thành một yếu tố dom?
Ryan Sampson

2
Việc đảo ngược có thể được thực hiện bởi: johnjian Phường.blogspot.com/2009/04/ Kẻ
Ryan Sampson

Thật tuyệt vời! Rất hữu ích
Oliver

Này @Marius sẽ hoạt động nếu elm chứa một tập hợp các nút DOM?
daremkd

16

Còn việc xây dựng phần tử bằng jQuery thì sao? ví dụ

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

tạo một phần tử div mới, sẵn sàng để được thêm vào trang. Có thể rút ngắn hơn nữa để

$("<div>")

sau đó bạn có thể xâu chuỗi các lệnh mà bạn cần, thiết lập trình xử lý sự kiện và nối nó vào DOM. Ví dụ

$('<div id="myid">Div Content</div>')
    .bind('click', function(e) { /* event handler here */ })
    .appendTo('#myOtherDiv');

2
thực sự tôi đang lấy phần tử từ một nơi nào đó mà tôi không thể thay đổi mã
Tanmoy

2

Cho đến nay giải pháp tốt nhất mà tôi đã thực hiện:

function convertHtmlToJQueryObject(html){
    var htmlDOMObject = new DOMParser().parseFromString(html, "text/html");
    return $(htmlDOMObject.documentElement);
}
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.