DOM Levels

DOM Levels

- Level 0

- Level 1

- Level 2

- Level 3

- Level 4

- Level 5

- Level 6

- Level 7

- Level 8

- Level 9

- Level 0

- Level 1

- Level 2

- Level 3

- Level 4

 

Level 0 - not a DOM

document.all
Boolean(document.all)// false

document.images

document.forms 
document.forms[0].elements

document.links// a[href]
document.anchors// a[name]

DHTML?

Level 1 - DOM begins!

  • Real DOM Tree with Nodes
  • document.getElementsByTagName
  • document.getElementById
  • NodeTypes
    • CData
    • Comment
    • Text
    • Attribute
    • etc
  • Live NodeList

 

DOM Level 2

  • NameSpaces (HTML, MathML, SVG, XLink, XML, XMLNS)

  •  

  • Styles

  • Event

  • Traversal

  • DOMImplementation

    • document.implementation

 

document.getElementsByTagNameNS("http://www.w3.org/1999/xhtml", "*")

DOM Level 2 - Events

  • Event capture

  • Event bubbling

  • Event cancellation

  • AddEventListener

    • Function

    • EventHandler

DOM Level 2 - EventHandler

const buttonElement = document.getElementById('btn');

buttonElement.addEventListener('click', function (event) {
  alert('Function!');
}); 


buttonElement.addEventListener('click', { 
  handleEvent: function (event) { 
    alert('EventHandler!'); 
  } 
});

Y2K

DOM Level 3

// XPath
var xpathResult = document.evaluate(xpathExpression, node, nsResolver, resultType, result);

// DOMParser
var parser = new DOMParser();
var doc = parser.parseFromString(stringContainingXMLSource, "application/xml");

// XMLSerializer
var inp = document.createElement('input');
var XMLS = new XMLSerializer(); 
var inp_xmls = XMLS.serializeToString(inp);

// DOMContentLoaded
document.addEventListener("DOMContentLoaded", function(event) {
    console.log("DOM fully loaded and parsed");
});

DOM Level 4

  • Node

    • prepend/append

    • before/after

    • remove/replaceWith

    • closest/contains

  • Element.matches

  • DOM Listener Options: capture, passive, and once

DOM Levels

By Sasha Pinchuk

DOM Levels

  • 364