forked from Asabeneh/30-Days-Of-JavaScript
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
22 changed files
with
961 additions
and
2 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -14,7 +14,6 @@ day9.md | |
day10.md | ||
01_02_03_days_backup.md | ||
test.md | ||
22_Day | ||
23_Day | ||
24_Day | ||
25_Day | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,230 @@ | ||
<div align="center"> | ||
<h1> 30 Days Of JavaScript</h1> | ||
<a class="header-badge" target="_blank" href="https://www.linkedin.com/in/asabeneh/"> | ||
<img src="https://img.shields.io/badge/style--5eba00.svg?label=LinkedIn&logo=linkedin&style=social"> | ||
</a> | ||
<a class="header-badge" target="_blank" href="https://twitter.com/Asabeneh"> | ||
<img alt="Twitter Follow" src="https://img.shields.io/twitter/follow/asabeneh?style=social"> | ||
</a> | ||
|
||
<sub>Author: | ||
<a href="https://www.linkedin.com/in/asabeneh/" target="_blank">Asabeneh Yetayeh</a><br> | ||
<small> January, 2020</small> | ||
</sub> | ||
|
||
</div> | ||
|
||
[<< Day 21](https://github.com/Asabeneh/30DaysOfJavaScript/blob/master/21_Day/21_day_dom.md) | [Day 23 >>]() | ||
|
||
![Thirty Days Of JavaScript](../images/banners/day_1_22.png) | ||
- [Day 22](#day-22) | ||
- [DOM(Document Object Model)-Day 2](#domdocument-object-model-day-2) | ||
- [Creating an Element](#creating-an-element) | ||
- [Creating elements](#creating-elements) | ||
- [Appending child to a parent element](#appending-child-to-a-parent-element) | ||
- [Removing a child element from a parent node](#removing-a-child-element-from-a-parent-node) | ||
- [Exercises](#exercises) | ||
- [Exercises: Level 1](#exercises-level-1) | ||
- [Exercises: Level 2](#exercises-level-2) | ||
- [Exercises: Level 3](#exercises-level-3) | ||
|
||
# Day 22 | ||
|
||
## DOM(Document Object Model)-Day 2 | ||
|
||
### Creating an Element | ||
|
||
To create an HTML element we use tag name. Creating an HTML element using JavaScript is very simple and straight forward. We use the method _document.createElement()_. The method takes an HTML element tag name as a string parameter. | ||
|
||
```js | ||
// syntax | ||
document.createElement('tagname') | ||
``` | ||
|
||
```html | ||
<!DOCTYPE html> | ||
<html> | ||
|
||
<head> | ||
<title>Document Object Model:30 Days Of JavaScript</title> | ||
</head> | ||
|
||
<body> | ||
|
||
<script> | ||
let title = document.createElement('h1') | ||
title.className = 'title' | ||
title.style.fontSize = '24px' | ||
title.textContent = 'Creating HTML element DOM Day 2' | ||
console.log(title) | ||
</script> | ||
</body> | ||
|
||
</html> | ||
``` | ||
|
||
### Creating elements | ||
|
||
To create multiple elements we should use loop. Using loop we can create as many HTML elements as we want. | ||
After we create the element we can assign value to the different properties of the HTML object. | ||
|
||
```html | ||
<!DOCTYPE html> | ||
<html> | ||
|
||
<head> | ||
<title>Document Object Model:30 Days Of JavaScript</title> | ||
</head> | ||
|
||
<body> | ||
|
||
<script> | ||
let title | ||
for (let i = 0; i < 3; i++) { | ||
title = document.createElement('h1') | ||
title.className = 'title' | ||
title.style.fontSize = '24px' | ||
title.textContent = i | ||
console.log(title) | ||
} | ||
</script> | ||
</body> | ||
|
||
</html> | ||
``` | ||
|
||
### Appending child to a parent element | ||
|
||
To see a created element on the HTML document we should append it to the parent as a child element. We can access the HTML document body using *document.body*. The *document.body* support the *appendChild()* method. See the example below. | ||
|
||
```html | ||
<!DOCTYPE html> | ||
<html> | ||
|
||
<head> | ||
<title>Document Object Model:30 Days Of JavaScript</title> | ||
</head> | ||
|
||
<body> | ||
|
||
<script> | ||
// creating multiple elements and appending to parent element | ||
let title | ||
for (let i = 0; i < 3; i++) { | ||
title = document.createElement('h1') | ||
title.className = 'title' | ||
title.style.fontSize = '24px' | ||
document.body.appendChild(title) | ||
} | ||
</script> | ||
</body> | ||
</html> | ||
``` | ||
|
||
### Removing a child element from a parent node | ||
|
||
After creating an HTML, we may want to remove element or elements and we can use the *removeChild()* method. | ||
|
||
**Example:** | ||
|
||
```html | ||
<!DOCTYPE html> | ||
<html> | ||
|
||
<head> | ||
<title>Document Object Model:30 Days Of JavaScript</title> | ||
</head> | ||
|
||
<body> | ||
<h1>Removing child Node</h1> | ||
<h2>Asabeneh Yetayeh challenges in 2020</h1> | ||
<ul> | ||
<li>30DaysOfPython Challenge Done</li> | ||
<li>30DaysOfJavaScript Challenge Done</li> | ||
<li>30DaysOfReact Challenge Coming</li> | ||
<li>30DaysOfFullStack Challenge Coming</li> | ||
<li>30DaysOfDataAnalysis Challenge Coming</li> | ||
<li>30DaysOfReactNative Challenge Coming</li> | ||
<li>30DaysOfMachineLearning Challenge Coming</li> | ||
</ul> | ||
|
||
<script> | ||
const ul = document.querySelector('ul') | ||
const lists = document.querySelectorAll('li') | ||
for (const list of lists) { | ||
ul.removeChild(list) | ||
} | ||
</script> | ||
</body> | ||
|
||
</html> | ||
``` | ||
|
||
As we have see in the previous section there is a better way to eliminate all the inner HTML elements or the children of a parent element using the method *innerHTML* properties. | ||
|
||
```html | ||
<!DOCTYPE html> | ||
<html> | ||
|
||
<head> | ||
<title>Document Object Model:30 Days Of JavaScript</title> | ||
</head> | ||
|
||
<body> | ||
<h1>Removing child Node</h1> | ||
<h2>Asabeneh Yetayeh challenges in 2020</h1> | ||
<ul> | ||
<li>30DaysOfPython Challenge Done</li> | ||
<li>30DaysOfJavaScript Challenge Done</li> | ||
<li>30DaysOfReact Challenge Coming</li> | ||
<li>30DaysOfFullStack Challenge Coming</li> | ||
<li>30DaysOfDataAnalysis Challenge Coming</li> | ||
<li>30DaysOfReactNative Challenge Coming</li> | ||
<li>30DaysOfMachineLearning Challenge Coming</li> | ||
</ul> | ||
|
||
<script> | ||
const ul = document.querySelector('ul') | ||
ul.innerHTML = '' | ||
</script> | ||
</body> | ||
|
||
</html> | ||
``` | ||
|
||
The above snippet of code cleared all the child elements. | ||
|
||
--- | ||
|
||
🌕 You are so special, you are progressing everyday. Now, you knew how to destroy a created DOM element when it is needed. You learned DOM and now you have the capability to build and develop applications. You are left with only eight days to your way to greatness. Now do some exercises for your brain and for your muscle. | ||
|
||
## Exercises | ||
|
||
### Exercises: Level 1 | ||
|
||
1. Create a div container on HTML document and create 100 to 100 numbers dynamically and append to the container div. | ||
- Even numbers background is green | ||
- Odd numbers background is yellow | ||
- Prime numbers background is red | ||
|
||
![Number Generator](./../images/projects/dom_min_project_day_number_generators_2.1.png) | ||
|
||
### Exercises: Level 2 | ||
|
||
1. Use the countries array to display all the countries.See the design | ||
|
||
![World Countries List](./../images/projects/dom_min_project_countries_aray_day_2.2.png) | ||
|
||
### Exercises: Level 3 | ||
|
||
Check the requirement of this project from both images(jpg and gif). All the data and CSS has been implemented using JavaScript only. The data is found on starter folder project_3. | ||
|
||
![Challenge Information](./22_day_starter/design/dom_mini_project_challenge_info_day_2.3.png) | ||
|
||
![Challenge Information](./22_day_starter/design/dom_mini_project_challenge_info_day_2.3.gif) | ||
|
||
🎉 CONGRATULATIONS ! 🎉 | ||
|
||
[<< Day 21](https://github.com/Asabeneh/30DaysOfJavaScript/blob/master/21_Day/21_day_dom.md) | [Day 23 >>]() |
Binary file added
BIN
+866 KB
22_Day/22_day_starter/design/dom_min_project_countries_aray_day_2.2.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added
BIN
+315 KB
22_Day/22_day_starter/design/dom_min_project_day_number_generators_2.1.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added
BIN
+1.69 MB
22_Day/22_day_starter/design/dom_mini_project_challenge_info_day_2.3.gif
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added
BIN
+373 KB
22_Day/22_day_starter/design/dom_mini_project_challenge_info_day_2.3.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,22 @@ | ||
<!DOCTYPE html> | ||
<html> | ||
|
||
<head> | ||
<title>30DaysOfJavaScript:22 Day: Number Generator </title> | ||
</head> | ||
|
||
<body> | ||
<h1>Number Generator</h1> | ||
<h2>30DaysOfJavaScript:DOM Day 2</h2> | ||
<h3>Author: Asabeneh Yetayeh</h3> | ||
<div class="wrapper"> | ||
|
||
</div> | ||
|
||
|
||
|
||
<script src="./scripts/main.js"></script> | ||
|
||
</body> | ||
|
||
</html> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,2 @@ | ||
console.log(countries) | ||
alert('Open the console and check if the countries has been loaded') |
Oops, something went wrong.