我有这个jquery脚本:
$('#add').click(function(){
$('<div class="drag" style="left:20px;"/>')
.text( num++ )
.appendTo( document.body )
.css({
top: $( window ).height() - 500 ,
left:$( window ).width() - 500
});
});
这将创建:<div class="drag" style="left:20px;"/></div>
我感兴趣的是:
<div class="drag" style="left:20px;"/>
<div class="handle SE">
</div>
</div>
如果我这样做:
...
$('<div class="drag" style="left:20px;"/><div class="handle SE">')
.text( num++ )
...
jquery将创建2个单独的di'v而不是嵌套。
任何想法?
感谢
答案 0 :(得分:8)
使用.wrap()
:
$('<div class="handle SE">')
.text(num++)
.appendTo(document.body)
.wrap('<div class="drag" style="left:20px;"/>);
http://jsfiddle.net/alnitak/r4Dz6/
的工作示例在此特定示例中,在完成换行之前调用.appendTo(document.body)
是必要的,因为.wrap()
返回原始元素。最后调用.appendTo
会导致新包装的父元素从层次结构中删除。
答案 1 :(得分:2)
尝试:
var outer = $('<div class="drag">').text('foo');
var inner = $('<div class="handle SE">').text('bar');
$(outer).append(inner);
$(outer).appendTo('body');
答案 2 :(得分:0)
您可以使用$('<div class="drag"><div class="handle"></div></div>')
修改:您已将/
放在第一个div
的末尾:
$('<div class="drag" style="left:20px;"/><div class="handle SE">')
,
这使得它们没有嵌套,没有按预期工作:http://jsfiddle.net/nbT8m/