Javascript 文档、HTMLDocument、文档、元素、节点等。它们之间的关系是什么?

Javascript 文档、HTMLDocument、文档、元素、节点等。它们之间的关系是什么?,javascript,internet-explorer,dom,bower,Javascript,Internet Explorer,Dom,Bower,我想知道文档、HTMLDocument、文档、元素和节点之间的关系,以实现IE8的getElementsByClassName方法。。但每当我尝试这些方法时,它都不起作用:document.getElementsByClassName=function(){},HTMLDocument.getElementsByClassName=function(){}或 Element.prototype.getElementsByClassName=function(){} if(!Element.get

我想知道
文档
HTMLDocument
文档
元素
节点
之间的关系,以实现IE8的
getElementsByClassName
方法。。但每当我尝试这些方法时,它都不起作用:
document.getElementsByClassName=function(){}
HTMLDocument.getElementsByClassName=function(){}
Element.prototype.getElementsByClassName=function(){}

if(!Element.getElementsByClassName){
Element.prototype.getElementsByClassName=函数(arg){
var-css选择器;
var parentElement=this.document | | this.documentElement.document | | document;
var querylements=null;
如果(arg){
如果(参数indexOf(“”)>0){
cssSelector='[class~='+arg+']';
}否则{
cssSelector=“.”+参数;
}
queryElements=parentElement.querySelectorAll(cssSelector);
}
返回查询项;
}
}
var elems=document.getElementsByClassName('limit')。项(0);
var triangles=elems.getElementsByClassName('triangle');
调试器;

您可以在中找到
文档
节点
元素
的说明,以及
HTMLDocument
的说明

  • 文档
    界面表示浏览器中加载的任何网页,并作为网页内容(即DOM树)的入口点

  • 节点
    是一个接口,各种类型的domapi对象从中继承

  • 元素
    是一种
    节点
    。它只有对所有类型的元素通用的方法和属性

  • HTMLDocument
    接口扩展了
    Window.HTMLDocument
    属性,以包括特定于HTML文档的方法和属性


此外,如果您只想在IE 8中使用类似
GetElementsByCassName
的东西,我认为最简单的方法是使用
document.querySelectorAll('.classname')
作为替换。有关此方法的更多信息,请参阅。

请定义“不工作”。控制台错误?我担心知道“应该如何”并不是你真正需要的。。。我已经很久没有使用IE8了,但是一些旧的浏览器实际上没有像我们现在习惯的那样使用原型链接,因此在创建实例之后更改构造函数的原型并不是修改实例本身。但是你为什么要自己做呢?在线上有很多经过大量测试的多边形填充(顺便说一句,他们确实修改了实例,而不是原型)“元素是最基本的…”哼,不。你可能在想诺德?我从他那里得到了解释。那是错的。文档中的所有对象都从节点继承,而不是从元素继承。以任何有效的HTML5文档为例,
document.firstChild
将是
节点,它不是元素。(
document.firstChild instanceof Element
=>
false
document.firstChild instanceof DocumentType
=>
true
document.firstChild instanceof Node
=>
true
)。所有#文本节点、所有属性节点等也是如此。注意MDN是由志愿者编写和维护的,不是官方的(即使质量一般都很好)。我知道,元素继承自节点并基于节点。元素是元素节点。我已经用你的代码测试过了。完全正确。谢谢你指出我的错误。