some dom perignon and more objects of desire a really post-valentines day lecture

Post on 23-Feb-2016

18 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

DESCRIPTION

INFO100 and CSE100. Fluency with Information Technology. Some DOM Perignon and more Objects of Desire A Really Post-Valentines Day Lecture. Katherine Deibel. Arrays - Refresher. The basic idea of arrays Sometimes you have multiple pieces of data that are related - PowerPoint PPT Presentation

TRANSCRIPT

Some DOM Perignon and more Objects of DesireA Really Post-Valentines Day Lecture

Fluency with Information Technology

INFO100 and CSE100

Katherine Deibel

2012-05-09 Katherine Deibel, Fluency in Information Technology 1

Katherine Deibel, Fluency in Information Technology 2

Arrays - Refresher The basic idea of arrays

Sometimes you have multiple pieces of data that are related

You do not want to have to make separate variables for each (could be 1000s)

Examples Calendars List of elements on a page Images (multidimensional arrays)

2012-05-09

Arrays (refresher) Arrays let you work with multiple

values using only one variable name An index distinguishes each value

Example:

2012-05-09 Katherine Deibel, Fluency in Information Technology 3

stuff(0) "weasels"(1) 10(2) 3.1416(3) "A cute kitty"(4) true

An array called stuff

stuff[0] == "weasels"stuff[1] == 10stuff[2] == 3.1416etc.

Class… ClassesActually… Objects

2012-05-09 Katherine Deibel, Fluency in Information Technology 4

Let's take a closer look What's going on?

What's 'Math.' all about? Function identifiers cannot use periods! Why not just random()?

2012-05-09 Katherine Deibel, Fluency in Information Technology 5

Math.random()

Katherine Deibel, Fluency in Information Technology 6

Object-Oriented Language JavaScript is an object-oriented language What's an object?

For our purposes, an object is a structured collection of related variables and functions

Math is an object pre-built in to JS Math.random() Math.sqrt(number); Math.PI == 3.14159265…

2012-05-09

The period . The period is used for accessing the

members of an object General syntax:

objectName.memberName Example:

Math.random()looks in the Math object for a function named random

2012-05-09 Katherine Deibel, Fluency in Information Technology 7

It's All About Organization Imagine a bookstore

There are no topic sections Books are just listed in alphabetical order

by title Could you find a book there?

Yes, but it would be messy.

2012-05-09 Katherine Deibel, Fluency in Information Technology 8

Objects are Code Organization Compartmentalize related code Examples of built-in objects in JS:

Math Date Boolean Number String

2012-05-09 Katherine Deibel, Fluency in Information Technology 9

The Bigger Truth Objects are more than just a monolithic

entity like Math One can have object variables and we have

already been doing that Example:

var x = 4/3; /* object of type Number */Var y = 5/3; /* object of type Number */alert("x = " + x.toPrecision(4));alert("y = " + y.toFixed(2));

2012-05-09 Katherine Deibel, Fluency in Information Technology 10

x = 1.333

y = 1.67

Create Your Own Objects Beyond the scope of this course

CSE 142/143 discuss object-oriented programming in Java

W3Schools: http://www.w3schools.com/js/js_objects.asp

We will focus on some objects built-in to JavaScript: String The Document Object Model

2012-05-09 Katherine Deibel, Fluency in Information Technology 11

String ManipulationMake me a sweater

2012-05-09 Katherine Deibel, Fluency in Information Technology 12

Strings in JavaScript Strings come with several methods

and properties

2012-05-09 Katherine Deibel, Fluency in Information Technology 13

Length of a stringvar txt = "Hello!";alert(txt.length);

2012-05-09 Katherine Deibel, Fluency in Information Technology 14

6

Length of a stringvar txt = "Hello!";alert(txt.length);

2012-05-09 Katherine Deibel, Fluency in Information Technology 15

6

Change Casingvar txt = "Hello123!";alert(txt.toLowerCase());alert(txt.toUpperCase());

2012-05-09 Katherine Deibel, Fluency in Information Technology 16

hello123!

HELLO123!

indexOf( integer );var txt = "Hello123!";alert(txt.indexOf('H'));alert(txt.indexOf('h'));alert(txt.indexOf('llo'));

2012-05-09 Katherine Deibel, Fluency in Information Technology 17

0

-1

2

subStr(start, length)Returns a portion of thestringvar txt = "Hello123!";alert(txt.subStr(0,2));alert(txt.subStr(5,3));alert(txt.subStr(5,4));alert(txt.subStr(5,20));

2012-05-09 Katherine Deibel, Fluency in Information Technology 18

He

123

123!

123!

split("…")Split a string into anarray of substringsvar txt = "Hello";alert(txt.split(""));alert(txt.split("l"));alert(txt.split("ll"));txt = "www.uw.edu";alert(txt.split("."));

2012-05-09 Katherine Deibel, Fluency in Information Technology 19

H,e,l,l,o

He,,o

He,o

www, uw, edu

Document Object ModelOn the day of his daughter's wedding, the DOM offers favors

2012-05-09 Katherine Deibel, Fluency in Information Technology 20

Document Object Model Usually just called the DOM Some call it the Browser Object Model

Susie thinks such people are silly

2012-05-09 Katherine Deibel, Fluency in Information Technology 21

The BOM? You must be joking!?

Document Object Model Collection of objects that make up the

displayed web page Interpreted from HTML by browser

Document Object Models are used in most document applications today Word, Excel, PowerPoint PDFs Even some interfaces

2012-05-09 Katherine Deibel, Fluency in Information Technology 22

Document Object Model

2012-05-09 Katherine Deibel, Fluency in Information Technology 23

Document Object Model

2012-05-09 Katherine Deibel, Fluency in Information Technology 24

You should recognize several of these names

Document Object Model

2012-05-09 Katherine Deibel, Fluency in Information Technology 25

body

Document Object Model

2012-05-09 Katherine Deibel, Fluency in Information Technology 26

images

Document Object Model

2012-05-09 Katherine Deibel, Fluency in Information Technology 27

<a></a> links

Document Object Model

2012-05-09 Katherine Deibel, Fluency in Information Technology 28

forms

Document Object Model

2012-05-09 Katherine Deibel, Fluency in Information Technology 29

What are these? History? Navigator? Location?

Okay, there is a BOM Browser Object Model

contains both the DOM and browser elements related to the page

HTML and JS can be used to manipulate the Page title bar Navigation bar Window size Etc.

2012-05-09 Katherine Deibel, Fluency in Information Technology 30

What? I majored in Art, not CS!

The DOM (and the BOM) Every element on the page can be

accessed and manipulated through the DOM if you know the structure

The structure: It's all arrays of objects Actually, it's more like a tree

2012-05-09 Katherine Deibel, Fluency in Information Technology 31

An Example DOM: The HTML

2012-05-09 Katherine Deibel, Fluency in Information Technology 32

The DOM Tree The <html> tag

forms the root The <body> tag

is the trunk Tags nested

within each other form branches off of branches

2012-05-09 Katherine Deibel, Fluency in Information Technology 33

The DOM Tree

2012-05-09 Katherine Deibel, Fluency in Information Technology 34

html

body

h1

p a

p

head title

DOM Properties & MethodsNot real estate

2012-05-09 Katherine Deibel, Fluency in Information Technology 35

Array Examples All forms and images on a page are

stored in arrays document.forms[0] The first form document.images[2] The third image

You can also get the number of such items on the page document.forms.length document.images.length

2012-05-09 Katherine Deibel, Fluency in Information Technology 36

Objects and Arrays Arrays can be indexed with strings as

well as numbers document.images["bluecar"]

image on page named "bluecar" with the id attribute in HTML.<img src="bluecar.jpg" id="bluecar" />

works since id attributes should be unique in HTML

2012-05-09 Katherine Deibel, Fluency in Information Technology 37

.elements property Most objects in the DOM have

the .elements property Returns an array of all elements (tags)

within the specified object

2012-05-09 Katherine Deibel, Fluency in Information Technology 38

Katherine Deibel, Fluency in Information Technology 39

Manipulating Form Inputs Assume a form has the following tag:

<input type="button" id="click" … /> To access that input through the DOM:

Use the input's id:document.forms[0].click. …

Use the .elements property to get an array of each element inside the form:document.forms[0].elements['click']. …

2012-05-09

<input> properties in DOM document.forms[0].id1.value

Used with text fields to get or set text document.forms[0].id2.checked

Boolean value used with checkboxes and radio buttons to set if input is clicked/selected

2012-05-09 Katherine Deibel, Fluency in Information Technology 40

<img> properties in DOM document.images[0].src = "…"

Get or set the source file for the image document.images[0].alt = "…"

Get or set the alt text for the image document.images[0].width = #

document.images[0].height = #Get or set the dimensions of the image

2012-05-09 Katherine Deibel, Fluency in Information Technology 41

Katherine Deibel, Fluency in Information Technology 42

Accessing a Single Node var tag = getElementById("…")

attach id-attributes to HTML tags and access page elements by this notation, instead of having to wade through the hierarchy

Remember to use unique ids!

2012-05-09

Katherine Deibel, Fluency in Information Technology 43

Accessing Multiple Nodes document.getElementsByTagName("p")

Returns an array of all instances of a specific tag on the page

Example: returns all paragraphs on the page document.getElementsByClassName("…")

Returns an array of all instances of tags that are of a specific class

2012-05-09

Adding More Content var p = document.createElement("p");

document.body.appendChild(p); Allows you to add more nodes to the page Above code as a paragraph tag to the end

of body p.innerHTML = "Paragraph text";

Sets the text, including tags, in paragraph p

2012-05-09 Katherine Deibel, Fluency in Information Technology 44

Summary Objects provide further structure to

JavaScript and other languages Learn more about them at W3Schools

Browsers interpret HTML, CSS, JS, etc. to generate the Document Object Model You can manipulate this through JS Again, learn more at W3Schools

2012-05-09 Katherine Deibel, Fluency in Information Technology 45

top related