2013-08-05 94 views
0

所以我试图在JQuery中动态创建一个元素,然后用jquery wrap将它包装在一个更简单的元素中。我尝试以下,并没有奏效:jquery元素创建错误?

jQuery('<div />',{ 
     "class":"b", 
     text:"testing" 
     }).wrap('<div class="red" />'); 

jsfiddle

然后搜索后,我穿过凸轮this question,这似乎是我一直在寻找。

不幸的是,代码是放置在创建的元素中,而不是包装创建的元素。我试着乱搞,但截至目前看来,没有办法简单地包装一个Jquery创建的元素。

这是函数中的错误吗?或者我错过了什么?

回答

2

这个片断:

jQuery('<div />',{ 
     "class":"b", 
     text:"testing" 
     }).wrap('<div class="red" />'); 

返回引用到的第一个对象,你所创建的DIV,你不把它包在一个下面是工作的一种替代方案:

http://jsfiddle.net/vVxzc/

var test = jQuery('<div />',{ 
     "class":"b", 
     text:"testing" 
     }).wrap('<div class="red" />').parent(); 
$('#append2').append(test); 
2

您正在追加包裹到其他元素的项目,这将导致它从任何地方被删除,即包裹我nside红色div。你需要做的是将红色的div添加到元素中。 wrap让你回到原来的元素,而不是包装元素。

var test = jQuery('<div />',{ 
     "class":"b", 
     text:"testing" 
     }).wrap('<div class="red" />').parent(); 
$('#append2').append(test); 

http://jsfiddle.net/mowglisanu/ySbg7/1/