Столкнувшись с неперехваченной синтаксической ошибкой: Неожиданный токен o в JSON в позиции 1

#javascript #json #list

Вопрос:

Я создаю список задач, но сталкиваюсь с ошибкой

 VM619:1 Uncaught SyntaxError: Unexpected token o in JSON at position 1
    at JSON.parse (<anonymous>)
    at showNotes (javapractice.html:121)
    at javapractice.html:97
showNotes @ javapractice.html:121
(anonymous) @ javapractice.html:97
 

Вот как выглядит мой код
Код Javascript

В продолжение вышесказанного я хочу, чтобы кнопка удаления работала, и поэтому написал приведенный ниже код.

  else {
            notesElm.innerHTML = `Nothing to show fucker`;
        }
    }
    // function to delete note
    function deleteNote(index) {
        console.log("Deleteme", index);

        let notes = localStorage.getItem("notes");
        if (notes == null) {
            notesObj = [];
        } else {
            notesObj = JSON.parse(notes);
        }

        notesObj.splice(index, 1);
        localStorage.setItem("notes", JSON.stringify(notesObj));
        showNotes();
 

Но кнопка не работает.

Весь код

 <script>

    console.log('Welcome to Notes app');
    showNotes();

    let addBtn = document.getElementById("addBtn");
    addBtn.addEventListener("click", function (e) {

        let addTxt = document.getElementById("addTxt");
        let notes = localStorage.getItem("notes");
        if (notes == null) {
            notesObj = [];
        } else {
            notesObj = JSON.parse(notes);
        }
        notesObj.push(addTxt.value);
        localStorage.setItem("notes", JSON.stringify(notesObj));
        addTxt.value = "";
        //console.log(notesObj);
        showNotes();
    });

    function showNotes() {
        let notes = localStorage.getItem("notes");
        if (notes == null) {
            notesObj = [];
        } else {
            notesObj = JSON.parse(notes);
        }
        let html = "";
        notesObj.forEach(function (element, index) {
            html  = `
                <div class= "notecard my-2 mx-2 card" style="width: 18rem;" >
                <div class="card-body">
                    <h5 class="card-title">Note ${index   1} </h5>
                    <p class="card-text"> ${element   1}</p>
                    <button id="${index}" onclock="deleteNote(this.id)" class="btn btn-primary">Delete Note</button>
                </div>
        </div> `
        });
        let notesElm = document.getElementById("notes");
        if (notesObj.length != 0) {
            notesElm.innerHTML = html;
        }
        else {
            notesElm.innerHTML = `Nothing to show fucker`;
        }
    }
    // function to delete note
    function deleteNote(index) {
        console.log("Deleteme", index);

        let notes = localStorage.getItem("notes");
        if (notes == null) {
            notesObj = [];
        } else {
            notesObj = JSON.parse(notes);
        }

        notesObj.splice(index, 1);
        localStorage.setItem("notes", JSON.stringify(notesObj));
        showNotes();
    }

</script>
 

Комментарии:

1. Пожалуйста, опубликуйте свой код в виде текста, а не изображения текста.

2. Что такое JSON, который пытается разобрать этот код?

3. Пожалуйста, добавьте к сообщению скриншот console.log(notesObject) вывода. Поместите его сразу после строки 109

4. @ScottHunter Я опубликовал код в тексте, но в нем не указан номер строки. Вот почему мне пришлось добавить его в качестве изображения.

5. @AidOnline01 Я тебя не понял.

Ответ №1:

в первой строке showNotes функции (строка 117 на снимке экрана) let Notes = … «Примечания» должны иметь меньшую букву «n».

Комментарии:

1. Это помогло устранить ошибку. Но теперь я получаю еще одну ошибку. Неперехваченная ошибка типа: document.getElementById не является функцией в примечаниях (javapractice.html:134) в javapractice.html:97

2. потому что это document.getElementById с верхней буквой «В».

3. Я не могу заставить кнопку удалить работать. Пожалуйста, проверьте обновленный вопрос на наличие письменного кода.

4. Правильно ли вы видите «Удалить …» в консоли? У вас есть какое-либо сообщение об ошибке?

5. В консоли нет сообщения об ошибке.