Документ, HTMLDocument, Document, Element, Node и т. Д. Каковы их отношения? - PullRequest
0 голосов
/ 04 ноября 2019

Я хочу знать связь между document, HTMLDocument, Document, Element и Node для реализации метода getElementsByClassName для IE8 .. но всякий раз, когда я пытаюсь использовать эти методы, он не работает:
document.getElementsByClassName = function(){}, HTMLDocument.getElementsByClassName=function(){} или Element.prototype.getElementsByClassName=function(){}.

        if(!Element.getElementsByClassName) {
            Element.prototype.getElementsByClassName = function(arg){
                var cssSelector;
                var parentElement = this.document||this.documentElement.document||document;
                var queryElements = null;

                if(arg){
                    if(arg.indexOf(' ')>0){
                        cssSelector = '[class~="'+arg+'"]';
                    }else{
                        cssSelector = "."+arg;
                    }
                    queryElements = parentElement.querySelectorAll(cssSelector);
                }
                return queryElements;
            }
        }
        var elems = document.getElementsByClassName('limit').item(0);
        var triangles = elems.getElementsByClassName('triangle');
        debugger;

1 Ответ

0 голосов
/ 04 ноября 2019

Вы можете найти описание Document, Node и Element в этом документе и описание HTMLDocument из здесь .

  • Интерфейс Document представляет собой любую веб-страницу, загруженную в браузер, и служит точкой входа в содержимое веб-страницы, которым является дерево DOM.

  • Node - это интерфейс, от которого наследуются различные типы объектов API DOM.

  • Element - это один из типов Node. Он имеет только методы и свойства, общие для всех видов элементов.

  • Интерфейс HTMLDocument расширяет свойство Window.HTMLDocument для включения методов и свойств, специфичных для документов HTML.

Кроме того,если вы просто хотите использовать что-то вроде getElementsByClassName в IE 8, я думаю, что самый простой способ - использовать document.querySelectorAll('.classname') в качестве замены. Для получения дополнительной информации об этом методе, вы можете обратиться к этой статье .

...