在我的插件中,我使用以下代码将提供的元素的内容包装在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
)中存储对包装器的引用,因为我需要在很多方面对它进行操作。
答案 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();