解决方法
据我所知,jQuery中没有“outer
HTML”支持,但你可以编写一个函数来模拟它(在IE以外的浏览器中),或者使用
this plugin:
// this will return the element and it's mark-up,of an element // with the id myTag var outer = $('#myTag').outerHTML();
显然Brandon不是唯一的实现..我相信你也可以提出其他聪明的实现..
编辑
如果你热衷于避免追加电话,也许你可以尝试这样的事情..
function getOuterHTML(el) { var wrapper = ''; if(el) { var inner = el.innerHTML; var wrapper = '<' + el.tagName; for( var i = 0; i < el.attributes.length; i++ ) { wrapper += ' ' + el.attributes[i].nodeName + '="'; wrapper += el.attributes[i].nodeValue + '"'; } wrapper += '>' + inner + '</' + el.tagName + '>'; } return wrapper; } // now,to replicate the sample above var outer = getOuterHTML($('#myTag'));
唯一的问题是,我不确定是否所有浏览器都支持属性数组..但我知道mozilla家族的那些,并且IE对outerHTML有原生支持..试一试(对于那些没有支持您可以使用以前使用追加的方法的属性数组)