okwxj 发表于 2013-2-7 15:41:24

一个很有用的Prototype扩展---outerHTML方法

if(typeof(HTMLElement)!="undefined" && !window.opera) {   HTMLElement.prototype.__defineGetter__("outerHTML",function()   {         var a=this.attributes, str="<"+this.tagName, i=0;for(;i<a.length;i++)         if(a.specified)             str+=" "+a.name+'="'+a.value+'"';         if(!this.canHaveChildren)             return str+" />";         return str+">"+this.innerHTML+"</"+this.tagName+">";   });   HTMLElement.prototype.__defineSetter__("outerHTML",function(s)   {         var r = this.ownerDocument.createRange();         r.setStartBefore(this);         var df = r.createContextualFragment(s);         this.parentNode.replaceChild(df, this);         return s;   });   HTMLElement.prototype.__defineGetter__("canHaveChildren",function()   {         return !/^(area|base|basefont|col|frame|hr|img|br|input|isindex|link|meta|param)$/.test(this.tagName.toLowerCase());   }); }
使用方法:
<div id="test">   <input type="text" name="text" />   <p>this is a sentence</p></div><script>var out = document.getElementById("test").outerHTML;</script>
页: [1]
查看完整版本: 一个很有用的Prototype扩展---outerHTML方法