如何将DOM元素转换为jQuery元素?


277

我正在使用document.createElement()创建一个元素。现在如何将其传递给仅使用Jquery对象的函数?

$("#id") 

我不能使用它,因为该元素尚未在页面中呈现。


2
这个问题应该被认为是stackoverflow中的最佳问题
Oliver

Answers:


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元素?
Ryan Sampson'4

2
可以通过以下方法进行相反操作:johnjianfang.blogspot.com/2009/04/…–
Ryan Sampson

非常有用!
Oliver

如果Elm包含DOM节点集合,那么@Marius会起作用吗?
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,2009年

2

到目前为止,我已经做出了最好的解决方案:

function convertHtmlToJQueryObject(html){
    var htmlDOMObject = new DOMParser().parseFromString(html, "text/html");
    return $(htmlDOMObject.documentElement);
}
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.