В задании мы должны были создать простую функцию поиска, используя прослушиватель событий на кнопке поиска. Таким образом, есть файл, называемый store.js, с глобальным массивом объектов для имитации базы данных альбомов. Когда пользователь ищет художника, он должен отображать результат на новой странице. Я получил его, чтобы пройти через массив, получить результат и показать его на странице. Я не могу понять, как открыть страницу «Результаты поиска» и отобразить там результат. Если я сохраню результат в глобальной переменной и попытаюсь отобразить его на новой странице, то он говорит «undefined». Просто обратите внимание, что это начинающий клиентский JS-класс, поэтому не должно быть никаких «базовых» языков. Буду признателен за любые намеки или критику.JavaScript простой поиск - как отобразить результат на новой странице?
Это из инструкции присваивания:
- Создайте файл с именем search.js.
- Создайте прослушиватель событий в скрипте search.js, который обрабатывается функцией, называемой поиском, которая обрабатывает событие onclick для кнопки отправки для поиска.
- Когда я набираю имя исполнителя (сейчас я буду искать по имени исполнителя), в поле поиска и нажмите отправить, ваш поиск функция должна прокручивать фальшивую базу данных альбомов в store.js файл. Откройте новую страницу и отобразите результаты в списке на странице . Вам нужно будет использовать манипуляции dom для этой части.
Спасибо!
HTML:
<button id="searchButton">Search</button>
<div id="displayResult"></div>
JS:
//Search
var result = "Nothing found!";
function displaySearch() {
"use strict";
var displayResult = document.getElementById("displayResult");
window.open("search.html") //How do I display the result in this page?
displayResult.style.display = "block";
displayResult.innerHTML = result;
}
function doSearch() {
"use strict";
var searchField = document.getElementById("searchField").value;
for (var i = 0; i < db.length; i++) {
if (db[i].artist.toUpperCase() === searchField.toUpperCase()) {
result = db[i].artist;
}
}
displaySearch();
}
function search() {
"use strict";
var searchButton = document.getElementById("searchButton");
searchButton.addEventListener("click", doSearch, false);
}
window.addEventListener("load", search, false);
FAKE DB:
var db = []; //array of fake album database
function Album(id, title, artist, price, relDate, qty, tracks) {
"use strict";
this.id = id;
this.title = title;
this.artist = artist;
this.price = price;
this.relDate = relDate;
this.qty = qty;
this.tracks = tracks;
db.push(this);
}
var album1 = new Album("01", "Animals", "Pink Floyd", 18.99, "01/23/1977", 1000, ["1. Pigs on the Wing 1", "2. Dogs", "3. Pigs (Three Different Ones)", "4. Sheep", "5. Pigs on the Wing 2"]);
var album2 = new Album("02", "Cosmic Slop", "Funkadelic", 19.99, "07/09/1973", 500, ["1. Nappy Dugout", "2. You Can’t Miss What You Can’t Measure", "3. March to the Witch’s Castle", "4. Let’s Make It Last", "5. Cosmic Slop", "6. No Compute", "7. This Broken Heart", "8. Trash A-Go-Go", "9. Can’t Stand the Strain"]);
var album3 = new Album("03", "Ghost Reveries", "Opeth", 14.99, "08/29/2005", 1500, ["1. Ghost of Perdition", "2. The Baying of the Hounds", "3. Beneath the Mire", "4. Atonement", "5. Reverie/Harlequin Forest", "6. Hours of Wealth", "7. The Grand Conjuration", "8. Isolation Years"]);
Это назначение школы, и вы хотите, чтобы мы разрешим его для вас? Что вы тогда узнаете? :) – CharlieBrown
Я уже отправил задание. Я не хочу, чтобы это было решено, я хочу научиться этому. Я прошу HINTS, а не решения! «Я был бы признателен за любые намеки или критику». Зачем мне копировать/вставлять точные инструкции по назначению и мое настоящее имя? Мой профессор не глуп. – cabricz
Хорошо, я шучу. Вам нужно получить доступ к «документу» открытого окна и работать там. Я не знаю, что такое 'search.html', вы можете изменить этот контент DOM или создать пустую страницу и создать в ней результаты. :) – CharlieBrown