wrap.js源码
提供wrap、wrapAll、wrapInnner、unWrap方法,外部包裹、内部包裹、或移除父级包裹元素
define([ "./core", "./core/init", "./manipulation", // clone "./traversing" // parent, contents ],function(jQuery){ jQuery.fn.extend({ // 只能针对单个元素,wrap方法可以是多个元素 // html可以是选择器,将拷贝页面上的元素用来包裹当前元素,被拷贝对象在页面既有两份 // 或html字符串,形成dom元素插在当前元素前头,在把当前元素用循环语句插入该dom最底层 wrapAll:function(html){ var wrap; if ( this[0] ){ if ( jQuery.isFunction(html) ){ html=html.call(this[0]); } wrap=jQuery(html,this[0].ownerDocument).eq(0).clone(true); if ( this[0].parentNode ){ wrap.insertBefore(this[0]); } wrap.map(function(){ var elem=this; while ( elem.firstElementChild ){ elem=elem.firstElementChild; } return elem; }).append(this); } return this; }, // 当前元素的子元素使用html包裹 wrapInner:function(html){ if ( jQuery.isFunction(html) ){ return this.each(function(i){ jQuery(this).wrapInner(html.call(this,i)); } ); } return this.each(function(){ var self=jQuery(this), contents=self.contents();// 子元素 if ( contents.length ){ contents.wrapAll(html); }else{ self.append(html); } }); }, wrap:function(html){ var isFunction=jQuery.isFunction(html); return this.each(function(i){ jQuery(this).wrapAll(isFunction ? html.call(this,i) : html); }); }, // 移除匹配selector的父节点 unwrap:function(selector){ this.parent(selector).not("body").each(function(){ jQuery(this).replaceWith(this.childNodes); }); return this; } }); return jQuery; });
相关推荐
瓜牛呱呱 2020-11-12
柳木木的IT 2020-11-04
yifouhu 2020-11-02
lei0 2020-11-02
源码zanqunet 2020-10-28
源码zanqunet 2020-10-26
一叶梧桐 2020-10-14
码代码的陈同学 2020-10-14
lukezhong 2020-10-14
lzzyok 2020-10-10
anchongnanzi 2020-09-21
clh0 2020-09-18
changcongying 2020-09-17
星辰大海的路上 2020-09-13
abfdada 2020-08-26
mzy000 2020-08-24
shenlanse 2020-08-18
zhujiangtaotaise 2020-08-18
xiemanR 2020-08-17