Mějme pole řetězců představující nákupní seznam
const list = ['mouka', 'máslo', 'cukr', 'jablka', 'skořice'];
Napište cyklus, který projde celé toto pole a všechny položky spojí dohromady do jednoho velkého řetězce jako níže.
'moukamáslocukrjablkaskořice'
Upravte váš program tak, že výsledný řetězec bude vypadat takto:
'mouka,máslo,cukr,jablka,skořice'
Upravte váš program tak, aby výsledný řětězec obsahoval HTML značky.
'<li>mouka</li><li>máslo</li><li>cukr</li><li>jablka</li><li>skořice</li>'
'use strict';
const list = ['mouka', 'máslo', 'cukr', 'jablka', 'skořice'];
let vysledek = '';
for (let i = 0; i < list.length; i++) {
vysledek += list[i];
}
console.log(vysledek);
let vysledek2 = '';
for (let i = 0; i < list.length; i++) {
vysledek2 += list[i];
if (i !== list.length - 1) {
vysledek2 += ',';
}
}
console.log(vysledek2);
let vysledek3 = '';
for (let i = 0; i < list.length; i++) {
vysledek3 += `<li>${list[i]}</li>`;
}
console.log(vysledek3);
Vytvořte funkci s názvem shoppingList, která na vstupu obdrží pole řetězců, představující nákupní seznam. Funkce vrátí řetězec obsahující prvky tohoto seznamu zabalené do HTML značek li.
Příklad použití:
> shoppingList(['špagety', 'kečup', 'sýr']);
'<li>špagety</li><li>kečup</li><li>sýr</li>'
'use strict';
const shoppingList = (items) => {
let vysledek = '';
for (let i = 0; i < items.length; i++) {
vysledek += `<li>${items[i]}</li>`;
}
return vysledek;
};
console.log(shoppingList(['špagety', 'kečup', 'sýr']));
Vytvořte si HTML stránku s následující strukturu
<body>
<div id="app"></div>
<script src="index.js"></script>
</body>
Na začátku vašeho programu vytvořte proměnnou heading.
const heading = 'Čau lidi';
Vyberte ze stránky element app a pomocí vlastnosti innerHTML do něj vložte prvek h1, ve kterém bude obsah proměnné heading.
'use strict';
const heading = 'Čau lidi';
const appElm = document.querySelector('#app');
appElm.innerHTML = `<h1>${heading}</h1>`;
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Document</title>
</head>
<body>
<div id="app"></div>
<script src="index.js"></script>
</body>
</html>
Vytvořte si HTML stránku s následující strukturu
<body>
<div id="app"></div>
<script src="index.js"></script>
</body>
Vytvořte funkci Heading, s jedním parametrem text. Tato funkce vytvoří řetězec obashující HTML značku h1 s obsahem zadným v parametru.
Ukázka použití:
> Heading('ahoj')
'<h1>ahoj</h1>'
> Heading('Zítra ráno v pět')
'<h1>Zítra ráno v pět</h1>'
Vyberte ze stránky element app a pomocí vlastnosti innerHTML do něj zapojte výsledek volání funkce Heading. Vyzkoušejte si tento postup s různými vstupy pro tuto funkci.
'use strict';
const Heading = (text) => {
return `<h1>${text}</h1>`;
};
const appElm = document.querySelector('#app');
appElm.innerHTML = Heading('Ahoj');
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Document</title>
</head>
<body>
<div id="app"></div>
<script src="index.js"></script>
</body>
</html>
Stáhněte si základ stránky zobrazující digitální hodiny. Následujte instrukce níže.
app.Clock se dvěma parametry hours a minutes, která vytvoří HTML kód hodin dle zadaných parametrů.app a pomocí funkce Clock do něj zapojte hodiny zaborazující nějaký čas.Clock vložit do stránky několik různých hodin pod sebe.'use strict';
const Clock = (hours, minutes) => {
return `<div class="clock">
<span class="clock__hours">${hours.padStart(2, '0',)}</span>:<span class="clock__minutes">${minutes.padStart(2, '0')}</span>
</div>`;
};
const appElm = document.querySelector('#app');
appElm.innerHTML = Clock('2', '28');
appElm.innerHTML += Clock('9', '3');
appElm.innerHTML += Clock('19', '56');
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<link rel="stylesheet" href="style.css" />
<title>Hodiny</title>
</head>
<body>
<div id="app"></div>
<script src="index.js"></script>
</body>
</html>
Stáhněte si základ stránky zobrazující seznam epizod nějakého podcastu. Prohlédněte si HTML stránku a všimněte si, že jedna epizoda podcastu se zobrazí pomocí tohoto HTML.
<div class="episode">
<div class="episode__num">127</div>
<div class="episode__body">
<div class="episode__title">Hledání plyšového Yettiho</div>
<div class="episode__guest">host: Vojtěch Ryba</div>
</div>
</div>
Vytvořte komponentu Podcast se třemi parametry num, title a host představující číslo podcastu, název podcastu a hosta podcastu. Vaše komponenta nechť z těchto dat vyrobí HTML sturkturu pro jeden podcast.
V souboru index.html smažte obsah elementu episode-list. V JavaScriptu vyberte tento element a s použitím komponenty Podcast a vlastnosti innerHTML v něm vytvořte jednu epizodu podcastu dle nějakých vymyšlených dat.
Mějme následující pole obsahující několik epizod našeho podcastu.
const episodes = [
[127, 'Hledání plyšového Yettiho', 'Vojtěch Ryba'],
[128, 'Moderní hrachová polévka', 'Kamila Štancová'],
[129, 'Poloautomatické zrcadlo', 'Janka Janovská'],
[130, 'Máčené hlavy parlamentu', 'Jonáš Daněk'],
[131, 'Služby na hraně přívěsu', 'Tereza Křivánková'],
[132, 'Klasifikace sněžných klokanů', 'Josef Stix'],
[133, 'Rybolov v Oceánu bouří', 'Ludmila Gajová'],
];
Napište cyklus, který projde toto pole a pro každou položku vytvoří novou epizodu uvnitř elementu episodes-list.
'use strict';
// 1
const Podcast = (num, title, host) => {
return `
<div class="episode">
<div class="episode__num">${num}</div>
<div class="episode__body">
<div class="episode__title">${title}</div>
<div class="episode__guest">host: ${host}</div>
</div>
</div>
`;
};
// 2
const num = '126';
const title = 'Robot, který snědl koblihu';
const guest = 'Radovan Siwek';
const episodesListElm = document.querySelector('.episodes-list');
episodesListElm.innerHTML = Podcast(num, title, guest);
// 3
const episodes = [
[127, 'Hledání plyšového Yettiho', 'Vojtěch Ryba'],
[128, 'Moderní hrachová polévka', 'Kamila Štancová'],
[129, 'Poloautomatické zrcadlo', 'Janka Janovská'],
[130, 'Máčené hlavy parlamentu', 'Jonáš Daněk'],
[131, 'Služby na hraně přívěsu', 'Tereza Křivánková'],
[132, 'Klasifikace sněžných klokanů', 'Josef Stix'],
[133, 'Rybolov v Oceánu bouří', 'Ludmila Gajová'],
];
episodes.forEach((episode) => {
const episodesListElm = document.querySelector('.episodes-list');
episodesListElm.innerHTML += Podcast(episode[0], episode[1], episode[2]);
});
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<link rel="stylesheet" href="style.css" />
<title>Podcasty</title>
</head>
<body>
<div class="episodes-list"></div>
<script src="index.js"></script>
</body>
</html>
Stáhněte si základ stránky zobrazující jednoduchý úkolníček.
todo__tasks uvnitř souboru index.html, ale zapamtutje si, jak se v HTML vytvoří jeden úkol.tasks, které bude reprezentovat seznam úkolů.TasksList s jedním parametrem, která na vstupu očekává pole úkolů. Funkce TasksList pak pomocí cyklu sestaví HTML pro seznam úkolů tak, aby šel zobrazit na stránce.TasksList, předejte jí pole úkolů tasks a zapojte výsledek funkce do vaší stránky.'use strict';
// 2
const tasks = [
{ name: 'Vyprat ponožky' },
{ name: 'Naučit se funkce vyššího řádu' },
{ name: 'Nakoupit na víkend' },
];
// 3
const Task = (task) => {
return `
<div class="task">
${task.name}
</div>
`;
};
// 4
/*
Zakomentováno, jelikož to splnění
úkolu č. 6 (smazání elementu .todo__tasks z HTML) již nefunguje
tasks.forEach((task) => {
const todoTasksElm = document.querySelector('.todo__tasks');
todoTasksElm.innerHTML += Task(task);
});
*/
// 5
const TaskList = (props) => {
let result = '<div class="todo__tasks">';
props.tasks.forEach((task) => {
result += Task(task);
});
result += '</div>';
return result;
};
// 7
const todoElm = document.querySelector('.todo');
todoElm.innerHTML += TaskList({
tasks: tasks,
});
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<link rel="stylesheet" href="style.css" />
<title>Úkolníček</title>
</head>
<body>
<div class="todo">
<div class="todo__header">
<div class="date">
<div class="date__daynum">12</div>
<div class="date__monthyear">
<div class="date__month">dub</div>
<div class="date__year">2020</div>
</div>
<div class="date__day">čtvrtek</div>
</div>
</div>
<div class="todo__new">
<button class="btn-add">+</button>
<input id="new-task" class="new-task" type="text" />
</div>
</div>
<script src="index.js"></script>
</body>
</html>