The Document Object Model (DOM)

undefined
 
DOCUMENT
OBJECT MODEL
(DOM)
 
By: Ryan Whitten
What is the Document Object Model?
 
DOM specifies how browsers should create a model of a HTML page and how
JavaScript can be used to access and update the contents of a webpage
DOM is not a part of HTML neither is it a part of JavaScript
DOM is its own set of rules
 
The Document Object Model covers two primary areas:
1)
Making a Model of the HTML page
  
    and
2) Accessing and Changing the HTML page
 
DOM is structured in a tree-like representation.
 
Below is an example of source code
 
Below is what it looks like in a tree
TABLE
ROWS
TR
TD
TR
TD
TD
TD
DAYTON
CINCINNATI
COLUMBUS
CLEVELAND
 
Another example of this from Duckett:
undefined
ACCESSING THE
ELEMENTS
 
Getting a Single Node, Getting Multiple Nodes, Traversing between Nodes
Two Ways to get a Single Node
 
getElementById()
Uses an elements id attribute
Ex)
  
Given a element in a list:
   
<li id=“one” class=“hot”><em>fresh</em>figs</li>
  
Select by:
   
Var el = document.getElementById(‘one’);
 
querySelector()
Uses a CSS selector and returns the first matching element
Ex)
  
Var el = document.querySelector(‘li.hot’);
Three Ways to select Multiple Nodes
 
getElementsByClassName()
Selects all elements that have a specific value for
their class attribute
Ex)  var el = document.getElementsByClassName(‘hot’);
 
getElementsByTagName()
Selects all elements that have the specified tag
name
Ex)   var el = document.getElementsByTagName(‘li’);
 
querySelectorAll()
Uses a CSS selector to select all matching
elements
Ex) var els = document.querySelectorAll(‘li.hot’);
Traversing between Element Nodes
 
parentNode
Selects the parent of the current element node
(which returns a single element)
Ex) The parent of the first <li> element is <ul>
Var child, var parent;
Parent = child.parentNode;
 
UL
LI
LI
LI
LI
 
previousSibling / nextSibling
Selects the previous or next sibling from the DOM tree
Ex)
Var startItem = document.getElementById(‘two’);
Var prevItem = startItem.previousSibling;
Var nextItem = startItem.nextSibling;
 
firstChild / lastChild
Selects the first or last child of current element
Ex)
Var startItem = document.getByTagName(‘ul’)[0];
Var firstItem = startItem.firstChild;
Var lastItem = startItem.lastChild;
 
undefined
WORKING WITH THE
ELEMENTS
 
Access/Update text nodes, Working with HTML content, Access/Update attribute values
 
Accessing / Updating Text Nodes
 
Given the code:
<li id = “one”><em>fresh</em> figs</li>
Lets say you want to access the second text node “figs”
To do this you need the following code:
document.getElementById(‘one’).firstChild.nextSibling.nodeValue;
<li> is selected by getElementByID
firstChild = <em> element
nextSibling = text node containing “figs”
nodeValue = accesses the text nodes contents
 
Accessing and Changing a Text Node
 
Before
 
After
 
Ex)
The JavaScript below shows how to access the text
content of the second thing in the list and change
it from “pine nuts” to kale”
 
Working with HTML Content
 
innerHTML
Allows access to child elements and text content
Gets the content of an element and return it as a single string
Collecting content of a list and adding it to a variable:
 
elContent now holds the string ‘<em>fresh</em> figs’
Ex)
       
Before:
   
After:
This example shows changing the text into a link
 
Example of Using getElementByID() and
using innerHTML
 
Output:
Working with HTML Content (cont.)
 
If you want to access text only use:
textContent
By doing this code:
Document.getElementById(‘one’).textContent;
It would return the value: ‘fresh figs’
innerText
Generally not used as a result of:
Firefox does not adopt the property
Obeys CSS ( if CSS hid the <em> elements, only figs would be shown)
Slower than using textContent
Ex) The following code shows the difference between textContent &
innerText
 
Example using
createElement(),
querySelector(), textContent,
and replaceChild().
Accessing or Updating Attribute Values
 
className / id – lets you get/update the value of class and id attributes
hasAttribute() 
– checks to see if the attribute exists
getAttribute() 
– gets the value of the attribute
 
 
setAttribute() 
– updates the value of an attribute
 
 
 
removeAttribute() 
– removes an attribute
 
Adding Elements using DOM Manipulation
 
createElement() 
– creates new element inside a variable
Ex)
Var newel = document.createElement(‘li’);
createTextNode() 
– creates a text node inside a variable
Ex)
Var newText = document.createTextNode(‘quinoa’);
appendChild() 
– attaches the new textnode to new element
Ex)
newel.appendChild(newText);
 
 
 
 
Result ----------->
 
Using the code to the left, we are going to
add to a DOM tree:
//This finds what position the element should
be added
Var position =
document.getElementsByTagName(‘ul’)[0]’
//Inserts the new element into the position
Position.appendChild(newEl);
 
 
 
 
Removing an Element from the DOM TREE
 
The following example uses the 
removeChild() 
method to remove the fourth item:
Below code picks element to remove
Var removeEl = document.getElementsByTagName(‘li’)[3];
Then references its containing element
Var containerEl = removeEl.parentNode;
Then finally removes the element
ContainerEl.removeChild(removeEl);
undefined
 
Resources:
JavaScript & JQuery, interactive front-end web development by Jon Duckett
GeeksforGeeks, DOM (Document Object Model)
Educaba, JavaScript DOM by Priya Pedamkar
Slide Note
Embed
Share

The Document Object Model (DOM) specifies how browsers create a model of an HTML page and how JavaScript accesses and updates webpage contents. DOM is a set of rules independent of HTML and JavaScript, focusing on creating a model of the HTML page and manipulating its content through tree-like structures.

  • DOM Basics
  • Web Development
  • JavaScript
  • HTML Structure

Uploaded on Sep 11, 2024 | 0 Views


Download Presentation

Please find below an Image/Link to download the presentation.

The content on the website is provided AS IS for your information and personal use only. It may not be sold, licensed, or shared on other websites without obtaining consent from the author. Download presentation by click this link. If you encounter any issues during the download, it is possible that the publisher has removed the file from their server.

E N D

Presentation Transcript


  1. DOCUMENT OBJECT MODEL (DOM) By: Ryan Whitten

  2. What is the Document Object Model? DOM specifies how browsers should create a model of a HTML page and how JavaScript can be used to access and update the contents of a webpage DOM is not a part of HTML neither is it a part of JavaScript DOM is its own set of rules The Document Object Model covers two primary areas: 1) Making a Model of the HTML page and 2) Accessing and Changing the HTML page

  3. DOM is structured in a tree-like representation. Below is an example of source code Below is what it looks like in a tree TABLE ROWS TR TR TD TD TD TD DAYTON CINCINNATI CLEVELAND COLUMBUS

  4. Another example of this from Duckett:

  5. ACCESSING THE ELEMENTS Getting a Single Node, Getting Multiple Nodes, Traversing between Nodes

  6. Two Ways to get a Single Node getElementById() Uses an elements id attribute Ex) Given a element in a list: <li id= one class= hot ><em>fresh</em>figs</li> Select by: Var el = document.getElementById( one ); querySelector() Uses a CSS selector and returns the first matching element Ex) Var el = document.querySelector( li.hot );

  7. Three Ways to select Multiple Nodes getElementsByClassName() Selects all elements that have a specific value for their class attribute Ex) var el = document.getElementsByClassName( hot ); getElementsByTagName() Selects all elements that have the specified tag name Ex) var el = document.getElementsByTagName( li ); querySelectorAll() Uses a CSS selector to select all matching elements Ex) var els = document.querySelectorAll( li.hot );

  8. Traversing between Element Nodes parentNode Selects the parent of the current element node (which returns a single element) Ex) The parent of the first <li> element is <ul> Var child, var parent; Parent = child.parentNode; UL LI LI LI LI previousSibling / nextSibling Selects the previous or next sibling from the DOM tree Ex) Var startItem = document.getElementById( two ); Var prevItem = startItem.previousSibling; Var nextItem = startItem.nextSibling; firstChild / lastChild Selects the first or last child of current element Ex) Var startItem = document.getByTagName( ul )[0]; Var firstItem = startItem.firstChild; Var lastItem = startItem.lastChild;

  9. WORKING WITH THE ELEMENTS Access/Update text nodes, Working with HTML content, Access/Update attribute values

  10. Accessing / Updating Text Nodes Given the code: <li id = one ><em>fresh</em> figs</li> Lets say you want to access the second text node figs To do this you need the following code: document.getElementById( one ).firstChild.nextSibling.nodeValue; <li> is selected by getElementByID firstChild = <em> element nextSibling = text node containing figs nodeValue = accesses the text nodes contents

  11. Accessing and Changing a Text Node Before Ex) The JavaScript below shows how to access the text content of the second thing in the list and change it from pine nuts to kale After

  12. Working with HTML Content innerHTML Allows access to child elements and text content Gets the content of an element and return it as a single string Collecting content of a list and adding it to a variable: elContent now holds the string <em>fresh</em> figs This example shows changing the text into a link Ex) Before: After:

  13. Example of Using getElementByID() and using innerHTML Output:

  14. Working with HTML Content (cont.) If you want to access text only use: textContent By doing this code: Document.getElementById( one ).textContent; It would return the value: fresh figs innerText Generally not used as a result of: Firefox does not adopt the property Obeys CSS ( if CSS hid the <em> elements, only figs would be shown) Slower than using textContent Ex) The following code shows the difference between textContent & innerText

  15. Example using createElement(), querySelector(), textContent, and replaceChild().

  16. Accessing or Updating Attribute Values className / id lets you get/update the value of class and id attributes hasAttribute() checks to see if the attribute exists getAttribute() gets the value of the attribute setAttribute() updates the value of an attribute removeAttribute() removes an attribute

  17. Adding Elements using DOM Manipulation Using the code to the left, we are going to add to a DOM tree: createElement() creates new element inside a variable Ex) Var newel = document.createElement( li ); //This finds what position the element should be added Var position = document.getElementsByTagName( ul )[0] createTextNode() creates a text node inside a variable Ex) Var newText = document.createTextNode( quinoa ); appendChild() attaches the new textnode to new element //Inserts the new element into the position Position.appendChild(newEl); Ex) newel.appendChild(newText); Result ----------->

  18. Removing an Element from the DOM TREE The following example uses the removeChild() method to remove the fourth item: Below code picks element to remove Var removeEl = document.getElementsByTagName( li )[3]; Then references its containing element Var containerEl = removeEl.parentNode; Then finally removes the element ContainerEl.removeChild(removeEl);

  19. Resources: JavaScript & JQuery, interactive front-end web development by Jon Duckett GeeksforGeeks, DOM (Document Object Model) Educaba, JavaScript DOM by Priya Pedamkar

More Related Content

giItT1WQy@!-/#giItT1WQy@!-/#giItT1WQy@!-/#