Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/85.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript HTMLDOM和XMLDOM之间有什么区别_Javascript_Html_Xml_Dom - Fatal编程技术网

Javascript HTMLDOM和XMLDOM之间有什么区别

Javascript HTMLDOM和XMLDOM之间有什么区别,javascript,html,xml,dom,Javascript,Html,Xml,Dom,在w3school网站中有两个教程: 我想知道它们之间的关系,因为我认为HTMLDOM是一种XMLDOM 因此,XMLDOM中的方法/属性可以在HTMLDOM中使用,HTMLDOM可能拥有一些特殊的方法 但是,当我尝试使用此选项时: HTML: xxx var a=document.createElement(“a”); 文件.getElementById(“con”).appendChild(a); 它在IE中不起作用 所以我想知道问题出在哪里?您的代码中有一个错误,它遗漏了一个“e”:

在w3school网站中有两个教程:

我想知道它们之间的关系,因为我认为HTMLDOM是一种XMLDOM

因此,XMLDOM中的方法/属性可以在HTMLDOM中使用,HTMLDOM可能拥有一些特殊的方法

但是,当我尝试使用此选项时:

HTML:

xxx
var a=document.createElement(“a”);
文件.getElementById(“con”).appendChild(a);
它在IE中不起作用


所以我想知道问题出在哪里?

您的代码中有一个错误,它遗漏了一个“e”:

document.getElementById('con').appendChild(a);

appendChild()

DOM指的是由XML组成的树。树由节点组成。例如:

<a x="bb">
   <b> text </b>
</a>

正文
变成具有三个节点的树:一个用于
a
,一个用于
b
,一个用于文本。节点包含属性作为字段。因此
a
节点将有一个字段:
x=“bb”

HTML(实际上)是XML,因此您可以用它构建DOM树。HTML只是带有预定义元素的XML。也就是说,您不能为元素使用任何您想要的名称(您不能使用
,…),您可以使用预定义的名称(
a
span
div
,…)


我之所以说“实际上”,是因为HTML通常是不完整的XML(例如,使用

是错误的XML。您应该改用

)。浏览器有智能的解析器,知道如何克服这种破坏的XML,并从HTML中生成一个可用的树。

如果您想忘记与浏览器相关的问题,可以随时使用jQuery。IE的哪个版本?谢谢,但是在XML中,元素有一个方法“appendChild”,但为什么在我的示例中它不起作用?此外,在XMLDOM中,还有一个class元素。例如,document.getElementById(“xx”)将返回元素,我想知道在html中使用docxx.getxxId()时返回的类型是什么?您所说的
docxx.getxxId()
是什么意思?没错,从HTML创建的DOM树中的节点有我没有指定的方法
node.getElementById(x)
返回具有
id
属性等于
x
的子节点。
节点
的类型是
元素
HtmlElement
或更具体地说是特定类型的元素,例如
锚定元素
document
是DOM树的根,这样做
document.getElementById()
会扫描整个HTML。那么我们可以使用document.getElementById(“xx”).getElementById(“xx”)?前者返回一个元素(节点),然后再次调用getElementById。再次抱歉。查看:您似乎不能这样做。
getElementById
document
的一种方法。但是您可以在节点上使用
getElementByTagName
。请注意,

是不正确的XHTML,它是正确的HTML。请参阅HTML5规范的“void elements”部分:
<a x="bb">
   <b> text </b>
</a>