Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- function solve() {
- const findTagFromParent = (parent, tag, text) => {
- const parents = document.getElementsByClassName(parent);
- for (parent of parents) {
- const descendants = parent.getElementsByTagName(tag);
- if (descendants.length) {
- const button = descendants[0];
- if (button.innerHTML === text) {
- return button;
- }
- }
- }
- return undefined;
- };
- const el = (tag, content, attributes) => {
- const element = document.createElement(tag);
- if (attributes) {
- //Ако са подадени атрибути (ID, className, etc.) ги закачаме към елемента
- Object.assign(element, attributes);
- }
- if (Array.isArray(content)) {
- //Ако създаваме например Div, в който трябва да има други елементи - p, span, etc., ги закачаме като масив
- content.forEach(appendEl);
- } else {
- //Ако не е масив, просто закачаме текста или числото, което сме подали
- appendEl(content);
- }
- function appendEl(node) {
- if (typeof node == "string" || typeof node == "number") {
- node = document.createTextNode(node);
- }
- element.appendChild(node);
- }
- return element;
- };
- const validateAndAdd = (e) => {
- const lectureName = document.getElementsByName("lecture-name")[0].value;
- const lectureDate = document.getElementsByName("lecture-date")[0].value;
- const lectureModule = document.getElementsByName("lecture-module")[0].value;
- if (
- lectureName === "" ||
- lectureDate === "" ||
- lectureModule === "Select module"
- )
- return;
- const title = `${lectureModule.toUpperCase()}-MODULE`;
- const chosenDate = new Date(lectureDate);
- gayFormatDate =
- chosenDate.getFullYear() +
- "/" +
- ("0" + chosenDate.getDate()).slice(-2) +
- "/" +
- ("0" + (chosenDate.getMonth() + 1)).slice(-2) +
- " - " +
- chosenDate.getHours() +
- ":" +
- ("0" + chosenDate.getMinutes()).slice(-2);
- const date = gayFormatDate;
- const module = findTagFromParent("module", "h3", title);
- const h4 = el("h4", `${lectureName} - ${date}`);
- const button = el("button", "Del", { className: "red" });
- const li = el("li", [h4, button], { className: "flex" });
- let ul;
- if (!module) {
- const modules = document.getElementsByClassName("modules")[0];
- const h3 = el("h3", title);
- ul = el("ul", li);
- const newModule = el("div", [h3, ul], { className: "module" });
- modules.appendChild(newModule);
- } else {
- ul = module.parentNode.getElementsByTagName("ul")[0];
- ul.appendChild(li);
- }
- e.preventDefault();
- };
- const addButton = findTagFromParent("form-control", "button", "Add");
- if (!addButton) {
- return;
- }
- addButton.addEventListener("click", validateAndAdd);
- }
Advertisement
Add Comment
Please, Sign In to add comment