我如何在Firefox中做OuterHTML?我的部分代码我得到了OuterHTML属性"<LI onclick="TabClicked(this, 'SearchName', 'TabGroup1');">Name "所以我可以做一些解决它的东西。虽然我在Firefox上的javascript中没有OuterHTML属性,但我找不到另一种获取此字符串的方法。想法?
3 回答
MMMHUHU
TA贡献1834条经验 获得超8个赞
这是我们在pure.js中使用的函数:
function outerHTML(node){ return node.outerHTML || new XMLSerializer().serializeToString(node);}
要使用DOM方式:
outerHTML(document.getElementById('theNode'));
它适用于跨浏览器
编辑:警告! XMLSerializer存在问题,它会生成XML(XHTML)字符串。
这意味着您最终可能会使用标签,<div class="team" />
而不是<div class="team"></div>
某些浏览器不喜欢它。最近我对Firefox 3.5感到很痛苦。
因此,对于我们的pure.js
lib,我们回到了旧的安全方式:
function outerHTML(node){ // if IE, Chrome take the internal method otherwise build one return node.outerHTML || ( function(n){ var div = document.createElement('div'), h; div.appendChild( n.cloneNode(true) ); h = div.innerHTML; div = null; return h; })(node); }
元芳怎么了
TA贡献1798条经验 获得超7个赞
正确的方法(对于非IE浏览器)是:
var sOuterHTML = new XMLSerializer().serializeToString(oElement);
catspeake
TA贡献1111条经验 获得超0个赞
如果你愿意使用jQuery那么它相对简单:
$('<div>').append( $(ElementSelector).clone() ).html();
如果选择了多个元素,这将获得多个元素的外部HTML
添加回答
举报
0/150
提交
取消