在dom之外创建元素并使用jQuery操作它们
我试着看哪一个标题几乎相同,但尽管尝试了看起来合适的答案,我的代码仍然不起作用 我正在dom之外创建一个元素,如下所示:在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
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());
谢谢,总是很简单的,不是吗。。。我会在它允许的时候检查答案。