javascript - 为什么我的包含函数不被识别为函数

标签 javascript html

<!DOCTYPE html>
    <html>
        <head>
            <title>practice</title>
            <meta charset="UTF-8">
            <meta name="description" content="Creating and Maintaining Student Record Object">
        <script>
                var section = [];
                var name = [];
                var gender = [];
                var age = [];
                var favsub = [];
                var studRec = [];
                function saveButton() {
                    studRec[studRec.length] = {
                        section:document.getElementById("section").value,
                        name:document.getElementById("name").value,
                        gender:document.getElementById("gender").value,
                        age:document.getElementById("age").value,
                        favsub1:document.getElementsByClassName("favsub")[0].value,
                        favsub2:document.getElementsByClassName("favsub")[1].value,
                        favsub3:document.getElementsByClassName("favsub")[2].value,
                    }
                    document.getElementById("saveStud").reset();
                    console.log(studRec[studRec.length-1]);
                    }
                function checker() {
                    var name = document.getElementById("name1").value;
                    var section = document.getElementById("section1").value;
                    var count=studRec.length;
                    var check;
                    for(var i=0;i<count;i++)
                    {
                        check = studRec[i].includes(name,section);
                        if( check == true){
                            return studRec[i];
                        }
                        alert("Info does not exist");
                    }
                    }

            </script>
            <form id="saveStud" method="POST">
              <center>
                <p>Section</p>
                <select id="section" autofocus required>
                  <option value="0">select</option>
                        <option value="truth">truth</option>
                        <option value="faith">faith</option>
                        <option value="honesty">honesty</option>
                        <option value="charity">charity</option>
                        <option value="obedience">obedience</option>
                        <option value="chastity">chastity</option>
                        <option value="generosity">generosity</option>
                        <option value="humility">humility</option>          
                </select><br>
                <p>Student Name</p><input id="name" type="text" required><br>
                <p>Gender</p>
                <select id="gender">
                  <option value="M">Male</option>
                  <option value="F">Female</option>
                </select><br>
                <p>Age</p><input id="age" type="number" required><br>
                <p>Favorite Subjects</p><input class="favsub" type="text" required><br>
                <input class="favsub" type="text" required><br>
                <input class="favsub" type="text" required><br>

                <button onclick="saveButton()">save</button>
                <button type="reset" value="reset">reset</button>
              </center>
            </form>
            <br>
            <form id="search" method="POST">
              <center>
                <button type="button" onclick="checker()">search</button>
                <input id="name1" type="text" placeholder="Enter Student Name" required>
                <select id="section1" autofocus required>
                  <option value="0">select</option>
                        <option value="truth">truth</option>
                        <option value="faith">faith</option>
                        <option value="honesty">honesty</option>
                        <option value="charity">charity</option>
                        <option value="obedience">obedience</option>
                        <option value="chastity">chastity</option>
                        <option value="generosity">generosity</option>
                        <option value="humility">humility</option>          
                </select>
                <br>
                <button type="button">delete</button>

              </center>
            </form>
        </body>

    </html>

代码假定使用函数 saveButton() 将学生的信息存储在一个数组中,然后我们键入学生姓名并选择部分并使用搜索按钮,函数 checker() 假定显示信息如果输入的信息包含在数组 studRec 中,但行 check = studRec[i].includes(name,section);不起作用。请帮忙

最佳答案

这是您要调用的对象 includes:

{
    section: document.getElementById("section").value,
    name: document.getElementById("name").value,
    gender: document.getElementById("gender").value,
    age: document.getElementById("age").value,
    favsub1: document.getElementsByClassName("favsub")[0].value,
    favsub2: document.getElementsByClassName("favsub")[1].value,
    favsub3: document.getElementsByClassName("favsub")[2].value,
}

您还没有在此处放置 includes 属性,并且对象没有 native includes 方法。 Arrays have one ,但 {} 创建一个普通对象,而不是一个数组。

参见 How do I check if an object has a property in JavaScript?测试对象是否具有给定名称的属性。

关于javascript - 为什么我的包含函数不被识别为函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55610100/

相关文章:

javascript - 从节点查询器中使用复选框创建的数组中删除逗号

javascript - 如果我在 textarea 中插入一个段落,如何设置 div 的不同位置

javascript - 如何在 WebPack 输出中包含多个页面?

css - 从 css 写 html

javascript - Chrome 扩展程序可更改首选项文件中的值

javascript - JS 关联数组上的 toString()

javascript - jquery 在选项卡中打开页面并传递一些 POST 值

javascript - slider 适用于某些浏览器,但不适用于其他浏览器

javascript - jQuery .before 的问题

javascript - 使用 jQuery 在边界内拖动图像