-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmain.js
More file actions
70 lines (57 loc) · 2.12 KB
/
Copy pathmain.js
File metadata and controls
70 lines (57 loc) · 2.12 KB
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
let searchInputE1 = document.getElementById("searchInput");
let resultCountriesE1 = document.getElementById("resultCountries");
let spinnerE1 = document.getElementById("spinner");
let countriesData = [];
function createAndAppendCountryCard(country) {
let colE1 = document.createElement("div");
colE1.classList.add("col-12", "col-md-6", "col-lg-4");
resultCountriesE1.appendChild(colE1);
let cardE1 = document.createElement("div");
cardE1.classList.add("country-card", "d-flex", "flex-row", "align-items-center");
colE1.appendChild(cardE1);
let imgE1 = document.createElement("img");
imgE1.classList.add("country-flag", "mr-3");
imgE1.src = country.flag;
imgE1.alt = country.name;
cardE1.appendChild(imgE1);
let detailsE1 = document.createElement("div");
cardE1.appendChild(detailsE1);
let nameE1 = document.createElement("h1");
nameE1.classList.add("country-name");
nameE1.textContent = country.name;
detailsE1.appendChild(nameE1);
let populationE1 = document.createElement("p");
populationE1.classList.add("country-population");
populationE1.textContent = country.population;
detailsE1.appendChild(populationE1);
}
function displayCountries(countries) {
resultCountriesE1.textContent = "";
for (let country of countries) {
createAndAppendCountryCard(country);
}
}
function getCountriesData() {
spinnerE1.classList.remove("d-none");
let options = {
method: "GET"
};
fetch("https://apis.ccbp.in/countries-data", options)
.then(function(response) {
return response.json();
})
.then(function(jsonData) {
spinnerE1.classList.add("d-none");
countriesData = jsonData;
displayCountries(countriesData);
});
}
getCountriesData();
function filterCountries(event) {
let searchValue = event.target.value.toLowerCase();
let filterCountries = countriesData.filter(function(country) {
return country.name.toLowerCase().includes(searchValue);
});
displayCountries(filterCountries);
}
searchInputE1.addEventListener("input", filterCountries);