Guest

Untitled 1886

May 11th, 2026
7
0
Never
Not a member of GistPad yet? Sign Up, it unlocks many cool features!
None 4.20 KB | None | 0 0
  1.  
  2. let searchInput = document.getElementById('searchInput')
  3. let resultCountries = document.getElementById('resultCountries')
  4. const spinner = document.getElementById('spinner');
  5. let options = {
  6. method: 'GET'
  7. }
  8. let allCountries = []
  9.  
  10. function fetchCountries() {
  11. spinner.classList.remove('hidden');
  12.  
  13. .then(function(response) {
  14. return response.json()
  15. })
  16. .then(function(data) {
  17. allCountries = data
  18. renderCountries(allCountries)
  19. spinner.classList.add('hidden')
  20. })
  21. }
  22.  
  23. function renderCountries(countries) {
  24. resultCountries.innerHTML = ''
  25.  
  26. countries.forEach(function(country) {
  27. const card = document.createElement('div');
  28. card.className = 'border rounded-lg p-4 mb-3 flex items-center gap-4';
  29.  
  30. card.innerHTML = `
  31. <img src="${country.flag}" class="w-12 h-8 object-cover rounded">
  32. <div>
  33. <p class="font-bold text-lg">${country.name}</p>
  34. <p class="text-gray-600">Population: ${country.population.toLocaleString()}</p>
  35. </div>
  36. `;
  37.  
  38. resultCountries.appendChild(card);
  39. });
  40. }
  41. searchInput.addEventListener('input', function(e) {
  42. const term = e.target.value.toLowerCase();
  43.  
  44. const filtered = allCountries.filter(function(country) {
  45. return country.name.toLowerCase().includes(term);
  46. });
  47.  
  48. renderCountries(filtered);
  49. });
  50.  
  51. // Start: Fetch when page loads
  52. fetchCountries();
RAW Paste Data Copied