Girl Develop It is here to provide affordable and accessible programs to learn software through mentorship and hands-on instruction.
Some "rules"
Objects are a data type that let us store a collection of properties and methods.
var objectName = {
propertyName: propertyValue,
propertyName: propertyValue,
...
};
var charlie = {
age: 8,
name: "Charlie Brown",
likes: ["baseball", "The little red-haired girl"],
pet: "Snoopy"
};
Access values of "properties" using "dot notation":
var charlie = {
age: 8,
name: "Charlie Brown",
likes: ["baseball", "The little red-haired girl"],
pet: "Snoopy"
};
var pet = charlie.pet;
var name = charlie['name'];
var gender = charlie.gender
Use dot or bracket notation with the assignment operator to change objects.
charlie.name = "Chuck";
charlie.gender = "male";
delete charlie.gender;
Arrays can hold objects too!
var peanuts = [
{name: "Charlie Brown",
pet: "Snoopy"},
{name: "Linus van Pelt",
pet: "Blue Blanket"}
];
for (var i = 0; i < peanuts.length; i++) {
var peanut = peanuts[i];
console.log(peanut.name + ' has a pet named ' + peanut.pet + '.');
}
You can pass an object into a function as a parameter
var peanut ={
name: "Charlie Brown",
pet: "Snoopy"
};
function describeCharacter(character){
console.log(character.name + ' has a pet named ' + character.pet + '.');
}
describeCharacter(peanut);
On every webpage, the document object gives us ways of accessing and changing the DOM.
Every DOM "node" has properties. They are connected like a family tree.
Parent (parentNode), children (childNodes, firstChild), siblings (prevSibling, nextSibling)
var bodyNode = document.body; // <body>
var htmlNode = document.body.parentNode; // <html>
for (var i = 0; i < document.body.childNodes.length; i++) {
var childNode = document.body.childNodes[i];
//could be <p>, <h1>, etc.
//any html element
}
Finding every element on the page by siblings and children is time consuming!
The document object also provides methods for finding DOM nodes without going one by one
<img id="mainpicture" src="http://girldevelopit.com/assets/pink-logo.png">
var img = document.getElementById('mainpicture');
<li class="peanut">Charlie Brown</li>
<li class="peanut">Linus van Pelt</li>
var listItems = document.getElementsByTagName('li');
for (var i =0; i < listItems.length; i++) {
var listItem = listItems[i];
}
var img = document.getElementById('mainpicture');
We can use node methods to set and retrieve attributes
var img = document.getElementById('mainpicture');
img.getAttribute('src');
img.setAttribute('src', 'http://girldevelopit.com/assets/pink-logo.png');
var img = document.getElementById('mainpicture');
img.getAttribute('class');
img.setAttribute('class', 'picture-class');
Each DOM node has an innerHTML property:
document.body.innerHTML;
document.body.innerHTML = '<p>I changed the whole page!</p>';
document.body.innerHTML += "...just adding this bit at the end of the page.";
The document object can create new nodes:
document.createElement(tagName);
document.createTextNode(text);
document.appendChild();
var newImg = document.createElement('img');
newImg.src = 'http://girldevelopit.com/assets/pink-logo.png';
document.body.appendChild(newImg);
var newParagraph = document.createElement('p');
var paragraphText = document.createTextNode('New Paragraph!');
newParagraph.appendChild(paragraphText);
document.body.appendChild(newParagraph);