Ошибка, которую я всегда получаю (Uncaught SyntaxError: неожиданный конец ввода)

#javascript

#javascript

Вопрос:

Я получаю эту ошибку в последней строке (Uncaught SyntaxError: неожиданный конец ввода). Я не знаю почему. Я уже давно пытаюсь это исправить, но пока безуспешно. Я буду очень признателен, если кто-нибудь сможет исправить это для меня. Заранее спасибо!

 var data = {
    "users": [{
            "id": "staff1",
            "firstName": "Ray",
            "lastName": "Villalobos",
            "dept": "IT",
            "joined": {
                "month": "January",
                "day": 12,
                "year": 2012
            }
        },
        {
            "id": "staff2",
            "firstName": "John",
            "lastName": "Jones",
            "dept": "HR",
            "joined": {
                "month": "April",
                "day": 28,
                "year": 2010
            }
        }
    ]
}

 var output = "<ul>";

$(document).ready(function() {
            $("#search").on("click", function() {
                var userDept = $("input:checked").val();
                var output = "<ul>";
                for (var i in data.users) {
                    if ((userDept == data.users[i].dept) || (userDept == "Any")) {
                        output  = "<li>"   data.users[i].firstName   " "   data.users[i].lastName   "--"   data.users[i].joined.month   "<a href='"   data.users[i].id   ".html'> Visit Page </a></li>";
                    }
                }
                output  = "</ul>";
                document.getElementById("placeholder").innerHTML = output;
            });




            $(".save").on("click", function() {
                try {
                    $(this).attr('disabled', true);

                    var staffIdToAdd = $(this).closest("p").attr("id");

                    var myFavouriteStaff = JSON.parse(localStorage.getItem("favStaff"));
                    if (myFavouriteStaff == null) {
                        myFavouriteStaff = [];
                    }

                    myFavouriteStaff.push(staffIdToAdd);

                    localStorage.setItem("favStaff", JSON.stringify(myFavouriteStaff));
                } catch (e) {
                    if (e == QUOTA_EXCEEDED_ERR) {
                        console.log("Error: Local Storage limit exceeds.")
                    } else {
                        console.log("Error: Saving to local storage.");
                    }
                }
            });

            $("#viewFavourites").on("click", function() {
                console.log("Restoring array data from local storage.");

                myFavouriteStaff = JSON.parse(localStorage.getItem("favStaff"));
                var output = "<ul>";
                if (myFavouriteStaff != null) {
                    for (var i = 0; i < data.users.length; i  ) {
                        for (j = 0; j < myFavouriteStaff.length; j  ) {
                            if (data.users[i].id == myFavouriteStaff[j]) {
                                output  = "<li>"   data.users[i].firstName   " "   data.users[i].lastName   "--"   data.users[i].joined.month   " <a href='"   data.users[i].id   ".html'> Visit Page </a></li>";
                            }
                        }
                    }
                }
             output  = "<ul>";
                document.getElementById("placeholder").innerHTML = output;
            });
 

Ответ №1:

У вас есть $(document).ready(function() { то, что вы никогда не закрываете. Закройте его:

 var data = {
    users: [
        {
            id: "staff1",
            firstName: "Ray",
            lastName: "Villalobos",
            dept: "IT",
            joined: {
                month: "January",
                day: 12,
                year: 2012,
            },
        },
        {
            id: "staff2",
            firstName: "John",
            lastName: "Jones",
            dept: "HR",
            joined: {
                month: "April",
                day: 28,
                year: 2010,
            },
        },
    ],
};

var output = "<ul>";

$(document).ready(function () {
    $("#search").on("click", function () {
        var userDept = $("input:checked").val();
        var output = "<ul>";
        for (var i in data.users) {
            if (userDept == data.users[i].dept || userDept == "Any") {
                output  =
                    "<li>"  
                    data.users[i].firstName  
                    " "  
                    data.users[i].lastName  
                    "--"  
                    data.users[i].joined.month  
                    "<a href='"  
                    data.users[i].id  
                    ".html'> Visit Page </a></li>";
            }
        }
        output  = "</ul>";
        document.getElementById("placeholder").innerHTML = output;
    });

    $(".save").on("click", function () {
        try {
            $(this).attr("disabled", true);

            var staffIdToAdd = $(this).closest("p").attr("id");

            var myFavouriteStaff = JSON.parse(localStorage.getItem("favStaff"));
            if (myFavouriteStaff == null) {
                myFavouriteStaff = [];
            }

            myFavouriteStaff.push(staffIdToAdd);

            localStorage.setItem("favStaff", JSON.stringify(myFavouriteStaff));
        } catch (e) {
            if (e == QUOTA_EXCEEDED_ERR) {
                console.log("Error: Local Storage limit exceeds.");
            } else {
                console.log("Error: Saving to local storage.");
            }
        }
    });

    $("#viewFavourites").on("click", function () {
        console.log("Restoring array data from local storage.");

        myFavouriteStaff = JSON.parse(localStorage.getItem("favStaff"));
        var output = "<ul>";
        if (myFavouriteStaff != null) {
            for (var i = 0; i < data.users.length; i  ) {
                for (j = 0; j < myFavouriteStaff.length; j  ) {
                    if (data.users[i].id == myFavouriteStaff[j]) {
                        output  =
                            "<li>"  
                            data.users[i].firstName  
                            " "  
                            data.users[i].lastName  
                            "--"  
                            data.users[i].joined.month  
                            " <a href='"  
                            data.users[i].id  
                            ".html'> Visit Page </a></li>";
                    }
                }
            }
        }
        output  = "<ul>";
        document.getElementById("placeholder").innerHTML = output;
    });
});
 

Именно поэтому важно иметь правильный отступ, а также редактор, который выделяет совпадающие пары скобок.