jquery元素创建bug?

时间:2013-08-05 21:43:12

标签: javascript jquery

所以我试图在Jquery中动态创建一个元素,然后使用jquery wrap将它包装在一个更简单的元素中。我尝试了以下操作,但它不起作用:

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

jsfiddle

然后在搜索之后,我突然看到this question,这似乎是我正在寻找的。

不幸的是,代码用于放置在创建的元素内,而不是包装创建的元素。我尝试搞乱它,但到目前为止,在我看来,没有办法简单地包装一个Jquery创建的元素。

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

2 个答案:

答案 0 :(得分: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);

答案 1 :(得分:2)

您将附加到另一个元素的项目附加,这将导致它从任何地方被删除,即包裹在红色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/