2015-12-17 3 views
1

Я пробовал использовать отладчик, но до сих пор не понимаю, почему эта функция сохраняет печать первого объекта в массиве независимо от того, что я ввожу.Объекты, вызывающие DOM

Что я хочу сделать, это перебрать каждый элемент массива, и если ввод текстового поля равен одному из свойств имени, тогда распечатайте информацию для этого имени.

Я думал, что простой цикл, который проверяет, соответствует ли входное значение в текстовом поле любому из свойств имени, а затем console.log, этот элемент массива будет работать.

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() { вар представить = document.getElementById ('имя'); для (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 («Не зарегистрированный студент»); } } }

+0

Спасибо, что сработал. Могу ли я спросить вас, почему ==, а не =? – Siunami

+1

@Siunami == - оператор сравнения, = оператор присваивания – gurvinder372

Смежные вопросы