WrapInner没有设置包装器html

时间:2014-02-09 18:25:21

标签: jquery

在我的插件中,我使用以下代码将提供的元素的内容包装在div中:

  this.wrapper = $('<div/>', { 'class' : this.options.contentsClassName });
  this.element.wrapInner(this.wrapper);

在我的destroy函数中,我需要删除包装器div。但是,似乎使用wrapInner实际上并没有设置包装器的html,因为:

this.element.html(this.wrapper.html());

实际上将原始元素的html设置为空。

在这里打包/解包内容的正确方法是什么?我想在我的插件实例(this.wrapper)中存储对包装器的引用,因为我需要在很多方面对它进行操作。

1 个答案:

答案 0 :(得分:1)

在您的示例中,this.wrapper指的是未附加到DOM的JQuery对象。您需要找到附加到DOM的JQuery对象并存储它。

由于您正在包裹element的内部内容,因此您只需将wrapper设置为element的第一个孩子:

this.element.wrapInner($('<div/>', { 'class' : this.options.contentsClassName }));
this.wrapper = this.element.children().first();

Similar Example