Loading...
stanislavtz avatar stanislavtz 4 Точки

JS Advanced Exam 27.06.2020 - Pet Me

Здравейте,

 

Моля за помощ.

Решението на задачата: тук 

Проблема е, че локално задачата си работи както е по условие, като отговаря на всички изисквания и са направени необходимите проверки.

В judge ми дава грешка, Unexpected error: Cannot read property 'children' of undefined, обаче аз като си тествам кода, приложението ми вади всики необходими елементи от target-ите.

 

Ще помоля както за примерно решение за 100/100 - така и за коментар, от къде идва проблема при мен.

 

Предварително Благодаря!!!

Поздрави!

Тагове:
0
JavaScript Advanced 27/09/2020 10:41:11
nickwork avatar nickwork 657 Точки

Целият проблем в твоето решение е начина на създаване на елементите...не знам защо judge не го приема по този начин. Променил съм единствено това и нищо друго..внимавай на изпита с тази функция :) дава 100/100

https://pastebin.com/RvgX1MQP

0
stanislavtz avatar stanislavtz 4 Точки

Благодаря много!!! :) Е малко ми е тъпо, че от нищо - нещо, ама и в judge трябва да се пооправят разни неща. По-странно, че в addPet(), judge не хареасва функцията, но в другите функции не е проблем. Въобще не подозирах, че това е проблема, просто няма да я ползвам, въпреки, че ми спестява малко писане.

0
14/07/2020 22:16:57
DanailDimitrov93 avatar DanailDimitrov93 2 Точки

Здрасти, в момента и аз се мъча да изкарам повече от 25 точки на тази задача, макар, че в браузера работи. Подходът ми е малко по - различен и се чудя дали причината, че не взимам точките е в това, че вместо всеки път да създавам нов бутон и да трия стария, аз преобразувам един и същ и го местя. Като разлика между моето и твоето решение виждам единствено това, но след като  е работещ вариант защо Judge не го приема? Би ли погледнал и моето решение и да дадеш мнение?

https://pastebin.com/WVYaaFvP

0
stanislavtz avatar stanislavtz 4 Точки

Честно да ти кажа, малко трудно се ориентирам в кода ти, поради липсата на променливи към които да закачаш разли1ните функционалности, но това си е мй проблем, при теб ми се струва, че в проверката за с това дали на дадена променлива дължината на стойоността е по-голяма от 0. Пробвай с типа на проверката който аз съм нправил.

 

Друг проблем на Judge е ако разчиташ на ДОМ манипулиране и достъп до елементите чрез bubling, а не директно селектиране. Поне при мен е имало проблеми с bubling при някой задачи.

0
danail2003 avatar danail2003 27 Точки

Здравейте, аз получавам 75/100 от два часа се мъча и не мога да си открия грешката/грешките ако може малко помощ ?

 

 

function solve() {

    const div = document.getElementById('container');

    const addButton = document.querySelector('button');

    const pets = document.querySelectorAll('ul')[0];

 

    addButton.addEventListener('click', function (e) {

        e.preventDefault();

 

        let name = div.querySelectorAll('input')[0].value;

        let age = div.querySelectorAll('input')[1].value;

        let kind = div.querySelectorAll('input')[2].value;

        let currentOwner = div.querySelectorAll('input')[3].value;

        let number = parseInt(age);

 

        if (name !== '' && age !== '' && kind !== '' && currentOwner !== '' && typeof (number) == 'number') {

            let li = document.createElement('li');

            let paragraph = document.createElement('p');

            let ownerSpan = document.createElement('span');

            let buttonOwner = document.createElement('button');

 

            paragraph.innerHTML = `<strong>${name}</strong> is a <strong>${age}</strong> year old <strong>${kind}</strong>`;

            ownerSpan.textContent = `Owner: ${currentOwner}`;

            buttonOwner.textContent = 'Contact with owner';

            li.appendChild(paragraph);

            li.appendChild(ownerSpan);

            li.appendChild(buttonOwner);

            pets.appendChild(li);

 

            for (let i = 0; i < div.children.length; i++) {

                div.children[i].value = '';

            }

 

            buttonOwner.addEventListener('click', function (e) {

                e.preventDefault();

 

                let target = e.target.parentElement;

                e.target.remove();

 

                let newDiv = document.createElement('div');

                let takeButton = document.createElement('button');

                takeButton.textContent = 'Yes! I take it!';

                let input = document.createElement('input');

                input.placeholder = 'Enter your names';

                newDiv.appendChild(input);

                newDiv.appendChild(takeButton);

                target.appendChild(newDiv);

 

                takeButton.addEventListener('click', (e) => {

                    e.preventDefault();

 

                    if (input.value !== '') {

                        let adoptedPets = document.querySelectorAll('ul')[1];

                        let listOfAdoptedPets = document.createElement('li');

                        let checkedButton = document.createElement('button');

                        let newSpan = document.createElement('span');

                        newSpan.textContent = `New Owner: ${input.value}`;

                        checkedButton.textContent = 'Checked';

                        let newParagraph = document.createElement('p');

                        newParagraph.innerHTML = paragraph.innerHTML;

                        listOfAdoptedPets.appendChild(newParagraph);

                        listOfAdoptedPets.appendChild(newSpan);

                        listOfAdoptedPets.appendChild(checkedButton);

                        adoptedPets.appendChild(listOfAdoptedPets);

                        e.target.parentElement.remove();

 

                        checkedButton.addEventListener('click', function (e) {

                            e.preventDefault();

 

                            adoptedPets.removeChild(listOfAdoptedPets);

                        });

                    }

                });

            });

        }

    });

}


 

0
stanislavtz avatar stanislavtz 4 Точки

 Пробвай с тази проверка

if (!name || !Number(age) || !kind || !currentOwner) {

   return;

}

//code here

 

Мисля, че при твоята проверка е възможно да се пуснат данни в input полетата. Отделно тази проверка за number  и самата променлива number не мисля, че ти е нужна.

1
27/09/2020 00:30:50
danail2003 avatar danail2003 27 Точки

Благодаря сега изкарвам 87/100, явно имам още една грешка.

0
stanislavtz avatar stanislavtz 4 Точки

 if (input.value !== '') {

}

 

Промени и това условие.

 

Ако желаеш - оглдедай ми кода на този линк click here

0
27/09/2020 10:43:36
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.