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

时间:2012-11-10 00:52:45

标签: jquery dom dom-traversal jquery-traversing

我试着查看this post,其标题几乎相同,但尽管尝试了合适的答案,但我的代码仍无效。

我正在创建一个dom之外的元素:

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

在下一行,我试图操纵它。

$('.alert',e).width($(window).width()).height($(window).height());

正如你所看到的,我试图为选择器定义上下文(我在另一篇文章中看到的建议),但它没有用。有人能指出我做错了吗?

2 个答案:

答案 0 :(得分:2)

.alert div已经位于e变量DOM内容的根目录中,因此无需使用上下文参数(这会导致{strong>查找在.alert内1}} div为另一个.alert div,它找不到任何东西)所以就这样做:

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

如果你要为你的.messageBox div分配一些属性,那么就像你一样使用context参数:

 //this will work as .messageBox is inside your root element(.alert)
 $('.messageBox',e).width(...);

答案 1 :(得分:0)

$('.alert',e)相当于e.find('.alert'),因为e.alert

而无法返回任何内容

只需使用:

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