2014-09-18 92 views
0

我已经很好地形成与图像标记HTML作为如何获得

<img src="" width="400" height="100"/> 

以及形成img元素但当我通过的getElementById的innerHTML得到了它的图像标签生病形成:

<img src="" width="400" height="100"> 

这里是一个小页面进行测试

<html> 
    <body> 
    <article id="a1"> 
     <img src="" width="400" height="100"/> 
    </article> 

    <script> 
     alert(document.getElementById("a1").innerHTML); 
    </script> 
    <body> 
</html> 

我该如何获得从dom树良好形成的img标签? 我试图声明HTML为XHTML,但它没有帮助。

+0

这是一个小提琴http://jsfiddle.net/ke4z02x3/ – Huangism 2014-09-18 19:11:05

+0

...是什么让你觉得它很重要?如果这就是DOM从格式良好的(X)HTML构建的,那么问题是什么? – 2014-09-18 19:12:03

+0

_“我怎样才能得到由dom树形成的img标签?” - - 为了什么?你究竟想在这里做什么? – CBroe 2014-09-18 19:12:10

回答

0

请勿使用innerHTML,因为它不可靠。您应该序列化代码。

alert(new XMLSerializer().serializeToString(document.getElementById('a1'))); 
+0

谢谢!它有助于 – Alexander 2014-09-18 19:36:28

0

浏览器(至少Chrome和Firefox,我还没有进一步测试)只要它们处于XML模式,就会在innerHTML中为您提供格式良好的标记。

这是通过一个XML 内容类型HTTP头(如Content-Type: application/xhtml+xml)触发,而不是一个XHTML文档类型(其仅作为标准模式Invokation的字符串)。

它们还将包括标记来指定正在使用的命名空间。