2015-12-17 85 views
1

我试过使用调试器,但仍不明白为什么此函数不断输出数组中的第一个对象,无论输入什么内容。DOM调用对象

我想要做的是遍历每个数组元素,如果来自文本框的输入等于其中一个名称属性,则打印该名称的信息。

我想过一个简单的for循环,检查文本框中的输入是否等于任何名称属性,然后检查数组元素是否可以工作。

HTML:

<script type = "text/javascript" src="js/ObjectTest.js"></script> 
<input type = "text" name = "name" id = "name"> </input> 
<button type = "submit" id = "submit" onclick = "findStudent()">Find Student </button> 

的Javascript:

var registeredStudents = [ 
    {name: "Matthew", GPA: 5.0, Faculty: "Science", Major: "Cognitive Systems"}, 
    {name: "Rohit", GPA: 5.0, Faculty: "Science", Major: "Micro-Biology"}, 
    {name: "Marcel", GPA: 5.0, Faculty: "Engineering", Major: "Undeclared"}, 
    {name: "Louis", GPA: 5.0, Faculty: "Engineering", Major: "Mechanical Engineering"}, 
    {name: "Rob", GPA: 5.0, Faculty: "Engineering", Major: "Mechanical Engineering"} 
]; 

function findStudent(){ 
    var submit = document.getElementById('name'); 
    for (var i = 0; i < registeredStudents.length; i++){ 
     if (submit.value = registeredStudents[i].name){ 
     console.log(registeredStudents[i]); 
     break; 
     } else if (submit.value != registeredStudents[i]){ 
     console.log("Not a registered student"); 
     } 
    } 
} 

回答

1

你,如果条件是不对的,应该有===

功能findStudent(){VAR 提交=的document.getElementById ('名称');如果(submit.value == registeredStudents [i] .name){ console.log(registeredStudents [i]); 休息; (submit.value!= registeredStudents [i]){ } console.log(“Not a registered student”); } } }

+0

谢谢你的工作。我可以问你为什么==而不是=? – Siunami

+1

@Siunami ==是比较运算符,=是赋值运算符 – gurvinder372