Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 3 additions & 1 deletion 01/app.js
Original file line number Diff line number Diff line change
@@ -1 +1,3 @@
console.log('DOM');
const item = document.querySelector(".comments__item.comments__item--newest");

console.log(item?.querySelectorAll("[data-info]").length);
7 changes: 6 additions & 1 deletion 02/app.js
Original file line number Diff line number Diff line change
@@ -1 +1,6 @@
console.log('DOM');
const links = document.querySelectorAll("[data-url]");
console.log(links);

links.forEach((a) => {
a.href = a.getAttribute("data-url");
});
41 changes: 29 additions & 12 deletions 03/app.js
Original file line number Diff line number Diff line change
@@ -1,14 +1,31 @@
console.log('DOM');
console.log("DOM");

const buttonSettings = {
attr: {
className: 'btn',
title: 'super button'
},
css: {
border: '1px solid #336699',
padding: '5px 20px',
color: '#444'
},
text: 'Click me!',
}
attr: {
className: "btn",
title: "super button",
},
css: {
border: "1px solid #336699",
padding: "5px 20px",
color: "#444",
},
text: "Click me!",
};
const btn = document.createElement("button");

for (const key in buttonSettings) {
if (Object.prototype.hasOwnProperty.call(buttonSettings, key)) {
const element = buttonSettings[key];
if (key === "attr") {
btn.className = element.className;
btn.title = element.title;
} else if (key === "css") {
btn.style = element;
} else {
btn.textContent = element;
}
}
}

document.querySelector(".parent-for-button").appendChild(btn);
27 changes: 21 additions & 6 deletions 04/app.js
Original file line number Diff line number Diff line change
@@ -1,8 +1,23 @@
console.log('DOM');
console.log("DOM");

// struktura do wykorzystania w pętli
const menuItems = [
{text: 'start', url: '/'},
{text: 'galeria', url: '/gallery'},
{text: 'kontakt', url: '/contact'},
];
{ text: "start", url: "/" },
{ text: "galeria", url: "/gallery" },
{ text: "kontakt", url: "/contact" },
];

const ul = document.createElement("ul");

menuItems.forEach((item) => {
const li = document.createElement("li");
const a = document.createElement("a");
a.href = item.url;
a.textContent = item.text;
li.appendChild(a);
ul.appendChild(li);
});

const nav = document.createElement("nav");
nav.appendChild(ul);

document.body.appendChild(nav);
39 changes: 37 additions & 2 deletions 05/app.js
Original file line number Diff line number Diff line change
@@ -1,3 +1,38 @@
console.log('DOM');
console.log("DOM");

const curr = document.querySelector('.js-curr');
const curr = document.querySelector(".js-curr");

const removeButton = document.createElement("button");
removeButton.classList.add("article__btn");
removeButton.textContent = "Usuń z koszyka";
curr.parentNode.appendChild(removeButton);

const siblings = curr.parentNode.children;
for (let sibling of siblings) {
if (sibling !== curr) {
sibling.classList.add("siblings");
}
}

const nextArticle = curr.parentNode.nextElementSibling;
if (nextArticle && nextArticle.classList.contains("article")) {
nextArticle.setAttribute("title", "nextElementSibling");
}

const lastArticle = curr.parentNode.parentNode.lastElementChild;
if (lastArticle) {
const newParagraph = document.createElement("p");
newParagraph.classList.add("article__description");
newParagraph.textContent = "To jest dodatkowy paragraf przed przyciskiem.";
lastArticle.insertBefore(newParagraph, lastArticle.querySelector("button"));
}

const firstArticle = curr.parentNode.parentNode.firstElementChild;
const newArticle = firstArticle.cloneNode(true);

newArticle.querySelector(".article__title").textContent = "JS - Nowy Artykuł";
newArticle.querySelector(".article__description").textContent =
"To jest nowy artykuł dodany na początku listy.";

const articlesSection = curr.parentNode.parentNode;
articlesSection.insertBefore(newArticle, articlesSection.firstChild);