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
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
Ryan3 avatar Ryan3 0 Точки

Let me see a sample code . I don't understand your idea so much .

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