Я пробовал использовать отладчик, но до сих пор не понимаю, почему эта функция сохраняет печать первого объекта в массиве независимо от того, что я ввожу.Объекты, вызывающие 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");
}
}
}
Спасибо, что сработал. Могу ли я спросить вас, почему ==, а не =? – Siunami
@Siunami == - оператор сравнения, = оператор присваивания – gurvinder372