The DOM tree CS380 1. The DOM tree CS380 2 Types of DOM nodes  element nodes (HTML tag)  can have children and/or attributes  text nodes (text in.

Slides:



Advertisements
Similar presentations
The DOM tree CS The DOM tree CS380 2 Types of DOM nodes  element nodes (HTML tag)  can have children and/or attributes  text nodes (text in.
Advertisements

Cascading Style Sheets
CSS The basics { }. CSS Cascading Style Sheets - language used to – describe html appearance & formatting Style Sheet - file that describes – how html.
Cascading Style Sheets: Basics I450 Technology Seminar Copyright 2003, Matt Hottell.
HTML Overview - Cascading Style Sheets (CSS). Before We Begin Make a copy of one of your HTML file you have previously created Make a copy of one of your.
JQuery CS 380: Web Programming. What is jQuery? jQuery is a fast and concise JavaScript Library that simplifies HTML document traversing, event handling,
Document Object Model (DOM) JavaScript manipulation of the DOM.
© 2004, Robert K. Moniot Chapter 6 CSS : Cascading Style Sheets.
CSS BASICS. CSS Rules Components of a CSS Rule  Selector: Part of the rule that targets an element to be styled  Declaration: Two or more parts: a.
Chapter 8 Creating Style Sheets.
DOM and timers CS Problems with JavaScript JavaScript is a powerful language, but it has many flaws:  the DOM can be clunky to use  the same code.
Tutorial 16 Working with Dynamic Content and Styles.
 2008 Pearson Education, Inc. All rights reserved Document Object Model (DOM): Objects and Collections.
Fluency with Information Technology INFO100 and CSE100 Katherine Deibel Katherine Deibel, Fluency in Information Technology1.
JMD2144 – Lesson 5 Web Design & New Media. ‘Div’ide and conquer One of the most versatile structure tags available is the.. tag Short for ision, it allows.
 Missing (or duplicate) semicolons can make the browser completely ignore the style rule.  You may add extra spaces between the properties/values to.
Cascading Style Sheets (CSS) 1.  What is CSS?  Why CSS?  How to write a CSS? 2.
JS: Document Object Model (DOM)
Cascading Style Sheets. Defines the presentation of one or more web pages Similar to a template Can control the appearance of an entire web site giving.
DOM and JavaScript Aryo Pinandito.
Lecture 11 – DOM Scripting SFDV3011 – Advanced Web Development Reference: 1.
CSS/Photoshop Layouts – Quiz #7 Lecture Code:
D2L Notes Be sure to submit your link in the dropbox provided on D2L You can just upload an empty text file if a file upload is required Do not use D2L.
Review IDIA 619 Spring 2013 Bridget M. Blodgett. HTML A basic HTML document looks like this: Sample page Sample page This is a simple sample. HTML user.
HTML | DOM. Objectives  HTML – Hypertext Markup Language  Sematic markup  Common tags/elements  Document Object Model (DOM)  Work on page | HTML.
WRT235: Writing in Electronic Environments Basic CSS.
JavaScript – The DOM JavaScript is object based The browser is object based – We can access the browser's objects in the same way we did JavaScript's Two.
5.2 DOM (Document Object Model). 2 Motto: To write it, it took three months; to conceive it three minutes; to collect the data in it — all my life. —F.
CS134 Web Design & Development Cascading Style Sheets (CSS) Mehmud Abliz.
JavaScript IV ECT 270 Robin Burke. Outline DOM JS document model review W3C DOM.
Unleash the Power of jQuery Doncho Minkov Telerik Software Academy academy.telerik.com Senior Technical Trainer
CSE 154 Lecture 20: The DoM tree.
INT222 - Internet Fundamentals Shi, Yue (Sunny) Office: T2095 SENECA COLLEGE.
JQuery Introduction © Copyright 2014, Fred McClurg All Rights Reserved.
>> More on CSS Selectors. Pre-requisite Open the file called sample.txt Copy the all the text from the file Open your browser and go to codepen.io Paste.
Internet & World Wide Web How to Program, 5/e. © by Pearson Education, Inc. All Rights Reserved.2 Revised by Dr. T. Tran for CSI3140.
Tutorial 3 Adding and Formatting Text with CSS Styles.
Unleash the Power of jQuery Learning & Development Team Telerik Software Academy.
1 Javascript DOM Peter Atkinson. 2 Objectives Understand the nature and structure of the DOM Add and remove content from the page Access and change element.
 2008 Pearson Education, Inc. All rights reserved Document Object Model (DOM): Objects and Collections.
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.
Modifying HTML attributes and CSS values. Learning Objectives By the end of this lecture, you should be able to: – Select based on a class (as opposed.
Introduction to CSS. What is CSS? CSS ("Cascading Style Sheets") determines how the elements in our XHTML documents are displayed and formatted. By using.
DOM (Document Object Model) - Parsing and Reading HTML and XML -
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.
How to… Cascading Style Sheets. How to Insert a Style Sheet When a browser reads a style sheet, it will format the document according to it. There are.
Web Technologies Lecture 8 JQuery. “A fast and concise JavaScript Library that simplifies HTML document traversing, event handling, animating, and Ajax.
IN THIS LESSON, WE WILL BECOME FAMILIAR WITH HTML AND BEGIN CREATING A WEB PAGE IN YOUR COMPUTER HTML – the foundation.
JS: Document Object Model (DOM) DOM stands for Document Object Model, and allows programmers generic access to: DOM stands for Document Object Model, and.
Week 3: Introduction to jQuery and Adv. Javascript.
SE-2840 Dr. Mark L. Hornick 1 Dynamic HTML Making web pages interactive with JavaScript.
CSE 154 LECTURE 9: THE DOM TREE. The DOM tree The elements of a page are nested into a tree-like structure of objects the DOM has properties and methods.
IN THIS LESSON, WE WILL BECOME FAMILIAR WITH HTML AND BEGIN CREATING A WEB PAGE IN YOUR COMPUTER HTML – the foundation.
CSE 154 LECTURE 10: MORE EVENTS. Problems with reading/changing styles Click Me HTML window.onload = function() { document.getElementById("clickme").onclick.
1 Cascading Style Sheet (CSS). 2 Cascading Style Sheets (CSS)  a style defines the appearance of a document element. o E.g., font size, font color etc…
CSS Introductions. Objectives To take control of the appearance of a Web site by creating style sheets. To use a style sheet to give all the pages of.
Introduction to CSS: Selectors
Programming Web Pages with JavaScript
>> JavaScript: Document Object Model
>> Introduction to CSS
>> More on CSS Selectors
Intro to CSS CS 1150 Fall 2016.
Intro to CSS CS 1150 Spring 2017.
CSS – Cascading Style Sheet DOM – Document Object Model
Web Programming A different world! Three main languages/tools No Java
Document Object Model (DOM): Objects and Collections
Lecture 9: TIMERS and The DoM tree
CSc 337 Lecture 9: The DoM tree.
Chengyu Sun California State University, Los Angeles
Web Programming and Design
Presentation transcript:

The DOM tree CS380 1

The DOM tree CS380 2

Types of DOM nodes  element nodes (HTML tag)  can have children and/or attributes  text nodes (text in a block element)  attribute nodes (attribute/value pair)  text/attributes are children in an element node  cannot have children or attributes  not usually shown when drawing the DOM tree CS380 3 This is a paragraph of text with a link in it. HTML

Types of DOM nodes CS380 4 This is a paragraph of text with a link in it. HTML

Traversing the DOM tree CS380 5 complete list of DOM node properties browser incompatiblity information (IE6 sucks)browser incompatiblity information

DOM tree traversal example 6 This is a paragraph of text with a link. HTML CS380

Elements vs text nodes  Q: How many children does the div above have?  A: 3  an element node representing the  two text nodes representing "\n\t" (before/after the paragraph)  Q: How many children does the paragraph have? The a tag? 7 This is a paragraph of text with a link. HTML

Prototype's DOM element methods 8

Prototype's DOM tree traversal methods CS380 9

Prototype's DOM tree traversal methods CS // alter siblings of "main" that do not contain "Sun" var sibs = $("main").siblings(); for (var i = 0; i < sibs.length; i++) { if (sibs[i].innerHTML.indexOf("Sun") < 0) { sibs[i].innerHTML += " Sunshine"; } } JS

Selecting groups of DOM objects  methods in document and other DOM objects for accessing descendants: CS380 11

Getting all elements of a certain type CS var allParas = document.getElementsByTagName("p"); for (var i = 0; i < allParas.length; i++) { allParas[i].style.backgroundColor = "yellow"; } JS This is the first paragraph This is the second paragraph You get the idea... HTML

Combining with getElementById CS var addrParas = $("address").getElementsByTagName("p"); for (var i = 0; i < addrParas.length; i++) { addrParas[i].style.backgroundColor = "yellow"; } JS This won't be returned! 1234 Street Atlanta, GA HTML

Prototype's methods for selecting elements CS var gameButtons = $("game").select("button.control"); for (var i = 0; i < gameButtons.length; i++) { gameButtons[i].style.color = "yellow"; } JS Prototype adds methods to the document object (and all DOM element objects) for selecting groups of elements :

Prototype's methods for selecting elements CS apples Golden Delicious Mutsu McIntosh Ida Red exotic fruits kiwi granadilla HTML $('fruits').getElementsByClassName('yummy'); // -> [li#mutsu, …] $('exotic').getElementsByClassName('yummy'); // -> JS

Prototype's methods for selecting elements CS Apples Golden Delicious Mutsu McIntosh Ida Red An apple a day keeps the doctor away. $('apples').select('[title="yummy!"]'); // -> [h3, li#golden-delicious, li#mutsu] $('apples').select( 'p#saying', 'li[title="yummy!"]'); // $('apples').select('[title="disgusting!"]'); // JS

The $$ function 17 // hide all "announcement" paragraphs in the "news" //section var paragraphs = $$("div#news p.announcement"); for (var i = 0; i < paragraphs.length; i++) { paragraphs[i].hide(); } JS  $$ returns an array of DOM elements that match the given CSS selector  like $ but returns an array instead of a single DOM object  a shorthand for document.select  useful for applying an operation each one of a set of elements var arrayName = $$("CSS selector"); JS

Common issues with $$ 18 // get all buttons with a class of "control" var gameButtons = $$("control"); var gameButtons = $$(".control"); JS // set all buttons with a class of "control" to have red text $$(".control").style.color = "red"; var gameButtons = $$(".control"); for (var I = 0; i < gameButtons.length; i++) { gameButtons[i].style.color = "red"; } JS Q: Can I still select a group of elements using $$ even if my CSS file doesn't have any style rule for that same group? (A: Yes!)

Creating new nodes 19 // create a new node var newHeading = document.createElement("h2"); newHeading.innerHTML = "This is a heading"; newHeading.style.color = "green"; JS  merely creating a node does not add it to the page  you must add the new node as a child of an existing element on the page...

Modifying the DOM tree 20 var p = document.createElement("p"); p.innerHTML = "A paragraph!"; $("main").appendChild(p); JS CS380

Removing a node from the page 21 function slideClick() { var bullets = document.getElementsByTagName("li"); for (var i = 0; i < bullets.length; i++) { if (bullets[i].innerHTML.indexOf("children") >= 0) { bullets[i].remove(); } } JS  each DOM object has a removeChild method to remove its children from the page  Prototype adds a remove method for a node to remove itself CS380

DOM versus innerHTML hacking 22 function slideClick() { $("thisslide").innerHTML += " A paragraph! "; } JS  Imagine that the new node is more complex:  ugly: bad style on many levels (e.g. JS code embedded within HTML)  error-prone: must carefully distinguish " and '  can only add at beginning or end, not in middle of child list Why not just code the previous example this way? function slideClick() { this.innerHTML += "<p style='color: red; " + "margin-left: 50px;' " + "onclick='myOnClick();'>" + "A paragraph! "; } JS

Problems with reading/changing styles 23 window.onload = function() { $("clickme").onclick = biggerFont; }; function biggerFont() { var size = parseInt($("clickme").style.fontSize); size += 4; $("clickMe").style.fontSize = size + "pt"; } JS  style property lets you set any CSS style for an element  problem: you cannot (usually) read existing styles with it CS380

Accessing styles in Prototype 24 function biggerFont() { // turn text yellow and make it bigger var size = parseInt($("clickme").getStyle("font- size")); $("clickme").style.fontSize = (size + 4) + "pt"; } JS  getStyle function added to DOM object allows accessing existing styles  addClassName, removeClassName, hasClassName manipulate CSS classes CS380

Common bug: incorrect usage of existing styles 25 this.style.top = this.getStyle("top") "px"; // bad! JS  the above example computes e.g. "200px" "px", which would evaluate to "200px100px"  a corrected version: CS380 this.style.top = parseInt(this.getStyle("top")) "px"; // correct JS

Setting CSS classes in Prototype 26 function highlightField() { // turn text yellow and make it bigger if (!$("text").hasClassName("invalid")) { $("text").addClassName("highlight"); } } JS  addClassName, removeClassName, hasClassName manipulate CSS classes  similar to existing className DOM property, but don't have to manually split by spaces CS380

Example: createElements CS Add a paragraph

Example: createElements CS window.onload = function(){ var button = $("add"); button.onclick = addParagraphClick; } function addParagraphClick(){ var paragraph = document.createElement("p"); paragraph.innerHTML = "All work and no play makes Jack a dull boy"; var area = $("paragrapharea"); area.appendChild(paragraph); } function addListClick(){ } JS