Nib*_*Pig 37 javascript dom cross-browser
我的部分代码我得到了OuterHTML属性
"<LI onclick="TabClicked(this, 'SearchName', 'TabGroup1');">Name "
Run Code Online (Sandbox Code Playgroud)
所以我可以做一些解决它的东西.
虽然我在Firefox上的javascript中没有OuterHTML属性,但我找不到另一种获取此字符串的方法.想法?
Mic*_*Mic 68
这是我们在pure.js中使用的函数:
function outerHTML(node){
return node.outerHTML || new XMLSerializer().serializeToString(node);
}
Run Code Online (Sandbox Code Playgroud)
要使用DOM方式:
outerHTML(document.getElementById('theNode'));
Run Code Online (Sandbox Code Playgroud)
它适用于跨浏览器
编辑:警告!
XMLSerializer存在问题,它会生成XML(XHTML)字符串.
这意味着您最终可能会使用标签,<div class="team" />而不是<div class="team"></div>
某些浏览器不喜欢它.最近我对Firefox 3.5感到很痛苦.
因此,对于我们的pure.jslib,我们回到了旧的安全方式:
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);
}
Run Code Online (Sandbox Code Playgroud)
Ser*_*sky 19
正确的方法(对于非IE浏览器)是:
var sOuterHTML = new XMLSerializer().serializeToString(oElement);
Run Code Online (Sandbox Code Playgroud)
Pet*_*tai 12
如果你愿意使用jQuery那么它相对简单:
$('<div>').append( $(ElementSelector).clone() ).html();
Run Code Online (Sandbox Code Playgroud)
如果选择了多个元素,这将获得多个元素的外部HTML.
Firefox现在支持outerHTML:
Firefox 11于2012年3月13日发布.本文提供了有关此版本中修复的新功能和关键错误的信息,以及指向Web开发人员和附加开发人员的更详细文档的链接.
- HTML元素现在支持element.outerHTML属性.
弄清楚了!
child.getAttributeNode("OnClick").nodeValue;
Run Code Online (Sandbox Code Playgroud)
getAttribute 不起作用,但 getAttributeNode 效果很好;D