在dom之外创建元素并使用jQuery操作它们

在dom之外创建元素并使用jQuery操作它们,jquery,dom,dom-traversal,jquery-traversing,Jquery,Dom,Dom Traversal,Jquery Traversing,我试着看哪一个标题几乎相同,但尽管尝试了看起来合适的答案,我的代码仍然不起作用 我正在dom之外创建一个元素,如下所示: var e = $('<div class="alert"><div class="messageBox"><h1>'+type+'</h1><p class="message">'+message+'</p></div></div>'); e.width($(window).w

我试着看哪一个标题几乎相同,但尽管尝试了看起来合适的答案,我的代码仍然不起作用

我正在dom之外创建一个元素,如下所示:

var e = $('<div class="alert"><div class="messageBox"><h1>'+type+'</h1><p class="message">'+message+'</p></div></div>');
e.width($(window).width()).height($(window).height());

如您所见,我试图为选择器定义上下文(我在另一篇文章中看到的建议),但它不起作用。有人能告诉我我做错了什么吗?

这个
.alert
div已经位于
e
变量DOM内容的根目录下,因此不需要使用上下文参数(这将导致
中查找。alert
div用于另一个
变量。alert
div将找不到任何内容)就这样做吧:

var e = $('<div class="alert"><div class="messageBox"><h1>'+type+'</h1><p class="message">'+message+'</p></div></div>');
e.width($(window).width()).height($(window).height());
如果要为
.messageBox
div分配某些属性,则可以像您那样使用上下文参数:

 //this will work as .messageBox is inside your root element(.alert)
 $('.messageBox',e).width(...);
$('.alert',e)
相当于
e.find('.alert')
它不返回任何内容,因为
e
.alert

只需使用:

e.width($(window).width()).height($(window).height());

谢谢,总是很简单的,不是吗。。。我会在它允许的时候检查答案。