Presentation is loading. Please wait.

Presentation is loading. Please wait.

Advanced DOM Builds on last presentation on DOM Allows you to dynamically create elements and position them on a page DOM methods/properties are W3C standard.

Similar presentations


Presentation on theme: "Advanced DOM Builds on last presentation on DOM Allows you to dynamically create elements and position them on a page DOM methods/properties are W3C standard."— Presentation transcript:

1 Advanced DOM Builds on last presentation on DOM Allows you to dynamically create elements and position them on a page DOM methods/properties are W3C standard – innerHTML is not officially part of the standard 1

2 The DOM Tree When Web page is loaded into the browser – Every element on the page gets a "reference" – New elements can be created and referenced – JavaScript code can use these references to create new elements on a page 2

3 Reminder Graphs The next few slides are a repeat of some graphs I used in the last presentation and will used again here – We need to know what's on a page to know where to place new elements 3

4 Types of Nodes 4 Element nodes point to the element itself, not its content! Two other kinds of nodes for content A text node is anything contained between the angle brackets An attribute node is used to access attributes of a tag (e.g. 'href')

5 Simplified HTML Code 5 DOMinating JavaScript DOMinating JavaScript If you need some help, you might like to read articles from Dan Webb, PPK and Jeremy Keith.

6 Text Nodes 6 Each text node has its own value and is attached to an element node

7 Attribute Nodes 7 Attribute nodes point to the attributes of the element Here we see an "Anchor" element node with a text node and two attribute nodes, "href" and "rel"

8 Two Step Process To get a brand new element on a page… 1. Create the element in a JavaScript variable 2.Place the element on the page 8

9 Create an Element Elements are things like,,, etc. To create an element use the DOM method createElement, e.g. var mypara = document.createElement("p"); – This creates a paragraph element – Stores a reference to the element in mypara 9

10 Adding a Child Element One way to place a dynamically created element on a page is with the appendChild First get a reference to a parent node and add another child element to the end e.g. var mypara = document.createElement("p"); var mybody = document.getElementById("mybody"); mybody.appendChild(mypara); We are still not finished… 10

11 Adding Text to the Paragraph In the last slide, I created an empty paragraph and added to the end of elements in the body. To add text to an paragraph you first must use the createTextElement method and then append that to the paragraph element, e.g. var myText = document.createTextNode("Hello World!"); mypara.appendChild(myText); 11

12 Exercise 5.1 Create a small HTML file with a paragraph and a button in the body Use JavaScript to add a paragraph to the display that says "I did it!" when the button is clicked 12

13 Questions Where did the paragraph appear on the page? What happens if you click the button a few more times? 13

14 Inserting an Element If you want to place an element before an existing element, use insertBefore – Syntax: parentElement.insertBefore(newElement, targetElement) Example: var gallery = document.getElementById('imagegallery'); gallery.parentNode.insertBefore(placeholder, gallery); 14

15 Seems a Bit Strange You have to get the parent of the element you want to insert before then insert before that element. var gallery = document.getElementById('imagegallery '); gallery.parentNode.insertBefore(someimage, gallery); Here is some of the HTML… Snapshots The gallery is a ul element in this example and the DOM/JavaScript code inserts the element someimage before the list 15

16 Exercise 5.2 Create a small HTML file with a list and a button in the body. The list items are: John, George, Ringo. When the button is clicked, use JavaScript to insert a list item "Paul" before "George" list item – NOTE: only put an id value on the tag, not any of the list items. 16

17 Clone an Element You can make an exact copy of an element node by using the cloneNode function Example… var list = document.getElementById("headlines"); var newlist = list.cloneNode(); 17

18 Clone an Element and Children To clone the entire list (with child nodes) like so… var list = document.getElementById("headlines"); var newlist = list.cloneNode(true); 18

19 Exercise 5.3 Create a small HTML file with a list and a button in the body. The list items are: John, Paul, George, Ringo. When the button is clicked, use JavaScript to make a copy of the entire list and insert it below the original list and before the button – NOTE: only put an id value on the tag, not any of the list items. 19

20 Removing Elements To remove elements use the removeChild method – NOTE: If an Element that you remove has children then all children are removed as well var message = document.getElementById('msg'); var container = message.parentNode; container.removeChild(message); 20

21 Exercise 5.4 Create a small HTML file with a list and a button in the body. The list items are: John, Paul, George, Ringo. When the button is clicked, use JavaScript to remove Paul from the list – NOTE: Use an id value for "Paul" 21

22 Replacing Elements To replace an element use the replaceChild method var message = document.getElementById('msg'); var container = message.parentNode; var para = document.createElement('p'); container.replaceChild(para, message); - this replaces message with para 22

23 Exercise 5.5 Create a small HTML file with a list and a button in the body. The list items are: John, Paul, George, Pete. When the button is clicked, use JavaScript to replace the listitem for Pete to a listitem for Ringo – NOTE: Use an id value for "Pete" 23

24 More Things to Know hasChildNodes – Boolean value = element.hasChildNodes – If (mylist.hasChildNodes) { … Useful nodeType values 1: Element 2: Attribute 3: Text 8: Comment 24

25 End End of Lesson 25


Download ppt "Advanced DOM Builds on last presentation on DOM Allows you to dynamically create elements and position them on a page DOM methods/properties are W3C standard."

Similar presentations


Ads by Google