dom.mixin(dom[fn],(function(){ var wrapHelper = function(target,html ){ var wrap = html ; if(!wrap.nodeType){ if(document.createRange){ var range=dom.doc.createRange(); range.selectNodeContents(target); wrap = range.createContextualFragment(html).firstChild; } else{ wrap = dom.parseHTML(html,null,true).firstChild } }else{ wrap = html.cloneNode(true) } var insertor = wrap; while ( insertor.firstChild && insertor.firstChild.nodeType === 1 ) { insertor = insertor.firstChild; } return [wrap,insertor] } //用一个标签包裹所有匹配元素 //做法:在第一个匹配元素上添加一个父元素(包裹),然后把其他匹配元素都转移到此父元素中来 //wrapAll(html) wrapAll(elem) var wrapAll = function(html){ if ( dom.isFunction( html ) ) { return this.each(function(el,index) { dom(this).wrapAll( html.call(this, index)); }); } var arr = wrapHelper(this[0],html); var wrap = arr[0],insertor =arr[1]; this[0].parentNode.replaceChild(wrap,this[0]); return this.each(function(el){ insertor.insertBefore(el,null); }); } //给每个匹配元素都增加一个父元素(包裹元素), var wrap= function( html ) { return this.each(function() { dom( this ).wrapAll( html ); }); } //把每一个匹配元素的子节点都用东西包裹起来 var wrapInner = function(html){ var _wrap = function(target,html){ var arr = wrapHelper(target,html); var wrap = arr[0],insertor =arr[1]; target.insertBefore(wrap,target.firstChild); for(var i=1,n=target.childNodes.length;iinsertor.appendChild(target.childNodes[i],null) } } if(is(html,"Function")){ return this.each(function(el,index){ _wrap(el, html.call(el,index)); }); } return this.each(function(el){ _wrap(el,html) }); } return { wrapAll:wrapAll, wrap:wrap, wrapInner:wrapInner } })());
unwrap方法以后再说!
Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn