-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathscript.js
More file actions
51 lines (43 loc) · 1.42 KB
/
script.js
File metadata and controls
51 lines (43 loc) · 1.42 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
const container = document.getElementById('dogContainer');
const breedInput = document.getElementById('breedInput');
async function loadRandomDogs() {
container.innerHTML = 'Loading random dogs...';
const res = await fetch('https://dog.ceo/api/breeds/image/random/10');
const data = await res.json();
displayDogs(data.message);
}
async function searchBreed() {
const breed = breedInput.value.trim().toLowerCase();
if (!breed) return;
container.innerHTML = 'Searching...';
try {
const res = await fetch(`https://dog.ceo/api/breed/${breed}/images/random/5`);
const data = await res.json();
if (data.status === "error") {
container.innerHTML = `<p>No dogs found for breed "${breed}". Try another!</p>`;
} else {
displayDogs(data.message, breed);
}
} catch (err) {
container.innerHTML = `<p>Error fetching breed. Check the name and try again.</p>`;
}
}
function displayDogs(urls, breed = '') {
container.innerHTML = '';
urls.forEach(url => {
const card = document.createElement('div');
card.className = 'dog-card';
card.innerHTML = `
<img src="${url}" alt="dog image">
<p>${breed || extractBreedFromURL(url)}</p>
`;
container.appendChild(card);
});
}
function extractBreedFromURL(url) {
const parts = url.split('/');
const breedSlug = parts[parts.indexOf('breeds') + 1];
return breedSlug.replace('-', ' ');
}
// Load initial random dogs
loadRandomDogs();