-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathapp.js
191 lines (133 loc) · 4.9 KB
/
app.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
// # DOM Manipulation #
let val;
// ## document ##
val = document;
val = document.all[0];
val = document.all.length;
val = document.head;
val = document.body;
val = document.doctype;
val = document.domain;
val = document.URL;
val = document.contentType;
// ### document form ###
val = document.forms; //get element forms
val = document.forms[0].id; //get class/id form
val = document.forms[0].method; //get type method
// ### document links ###
val = document.links; //get all element a href
val = document.links[0]; //get element a href
val = document.links[0].className; // get clss in a href
// ### get document image ###
val = document.images
// ### get document script ###
val = document.scripts //get all script
val = document.scripts[1] //get script
val = document.scripts[1].getAttribute('src') //get link script
// #### list link script ####
let script= document.scripts;
let scriptArr = Array.from(script); //convert from HTMLCollection to array
scriptArr.forEach(function (script) {
// console.log(script.getAttribute('src'));
})
// console.log(val);
// ## get Element By Id
// console.log(document.getElementById('task-title')); //get element
// console.log(document.getElementById('task-title').id); //get attribute id in element
// console.log(document.getElementById('task-title').className); //get attribute class in element
const cardHeader = document.getElementById('task-title');
// ### Change style by id ###
cardHeader.style.background = 'black'; //change bg by id
cardHeader.style.color = 'white'; //change bg by id
// ### Change Content by id ###
cardHeader.textContent = 'Hello World'; //change Content by id
cardHeader.innerHTML = '<h2 style="text-align:center;">My Task</h2>'
// ## get Query Select, just take the first query ##
// console.log(document.querySelector('#task-title')); //get element
// ### Change style by Query ###
document.querySelector('li').style.color = 'red'; //take the first query;
document.querySelector('li:nth-child(2)').textContent = 'Hello World'; // take the quey as requested;
// ## get Class By Class Name ##
const items = document.getElementsByClassName('list-group-item');
items[2].style.color = "blue"
// ## get Element By Tag Name ##
const buttom = document.getElementsByTagName('button');
buttom[1].style.color = "Blue"
// ## get query selector all ##
const listLight = document.querySelectorAll('li:nth-child(odd'); //get all query odd
listLight.forEach(function (li, index) {
li.style.background = '#ccc';
})
// ## create new element ##
const li = document.createElement('li');
// add class
li.className = 'list-group-item d-flex flex-row-reverse justify-content-between';
// add id
li.id = 'new-item'
// add attribute
li.setAttribute('title', 'new item')
// add innerHTML
li.innerHTML = '<a href="/" class="btn btn-danger btn-sm delete-item">x</a>';
// Create append text node
li.appendChild(document.createTextNode("This New Text"))
// execution new element
document.querySelector('ul.list-group').appendChild(li);
// ## Replace Element ##
// Create element
const newHeading = document.createElement('h3');
// Add id
newHeading.id = 'task-title';
// New Text Node
newHeading.appendChild(document.createTextNode('Task List'));
// get old element
const oldHeading = document.getElementById('card-title');
// get parent
const cardTitle = document.querySelector('.card-header');
// Replace
// cardTitle.replaceChild(newHeading, oldHeading);
// ## Remove Element ##
const lis = document.querySelectorAll('li');
const list = document.querySelector('ul');
// Remove list item
lis[0].remove();
// ## Class And Attribute
// Class
// const firstLi = document.querySelector('li:first-child')
// const button = firstLi.children[0];
// let addClass;
// addClass = button.className
// addClass = button.classList
// button.classList.add("test");
// button.classList.remove("test");
// addClass = button;
// // Attribute
// addAtt = button.setAttribute("type", 'submit')
// addAtt = button.hasAttribute('type')
// addAtt = button;
// # Event #
// Event Listener
// click
document.querySelector('.clear-task').addEventListener('click', onClick);
// double click
// document.querySelector('.clear-task').addEventListener('dblclick', onClick);
// Mouse Down
// document.querySelector('.clear-task').addEventListener('mousedown', onClick);
// Mouse Up
// document.querySelector('.clear-task').addEventListener('mouseup', onClick);
// Mouse Enter
// document.querySelector('.clear-task').addEventListener('mouseenter', onClick);
function onClick(e) {
console.log(`Event type : ${e.type}`);
// Untuk berguna untuk mencegah untuk mengarahkan ke link a href
e.preventDefault();
e.target.innerText = "Clear Success";
}
// Form and input
const form = document.querySelector('form');
const taskInput = document.getElementById("input-task");
form.addEventListener('submit', runEvent);
function runEvent(e){
console.log(e.target.value);
// taskInput.value = '';
preventDefault(e);
}