我的$ new div没有包含以下代码:
var $new = $('test'); $('form').append($new.wrap("")) ;
这有什么问题?
更新:我们认为错误$new.wrap()
将无法工作,因为$ new中的html不在HTML DOM树中,但它只是一个包含html元素的变量.根据与@A的讨论,这是错误的.沃尔夫.
但是,以下解决方案也不错.
var $new = $('test'); $('form').append($new)//first append .find('.test')//find appended element .wrap('');//then wrap to appended element
或者,如果你不想在附加元素上给出一个类,你可以这样做:
$new.appendTo('form')//I am still on $new (no need to find anything) .wrap('');//So, I can wrap to $new
现在,要坚持使用您的代码,您需要将父元素作为@A返回.沃尔夫提到:
$('form').append($new.wrap("").parent());
我会解释一下这个why actually I need to return the parent element?
:
$new.wrap('');//I am still in $new not in the .new element .append($new.wrap('');//append the $new not the .new object
因此,wrap方法按预期工作,但append()方法追加返回的html,这就是为什么在$new.wrap('')
返回的html中 $('
但不是包装对象.你不会得到你所期望的.因此,为了获得预期的结果,我们可以使用:
$('form').append( $new.wrap('') //I am returning $new .parent()//Now, I am returning '.new' );//now .new object is appended to the form
这是追加方法的工作原理!