evgeniy8705
@evgeniy8705
Повелитель вселенной

Почему возникает ошибка поиска элементов DOM, как искать элементы?

Даже не знаю как правильно истолковать вопрос.
В общем, есть допустим 2 файла html. К ним подключен один и тот же файл js.

Вот файл html1:
<form action="#">
    <input type="text" class="key" placeholder="key">
    <input type="text" class="item" placeholder="item">
    <div class="add">Add</div>
</form>


Вот файл html2:
<ul class="list"></ul>

Вот файл JS:
var field1 = document.querySelector(".key");
var field2 = document.querySelector(".item");

document.querySelector(".add").addEventListener("click", function(event) {
	localStorage[field1.value] = field2.value;
}, false);


window.onload = function() {
	window.addEventListener("storage", storageChanged, false);
}

function storageChanged(event) {
	var list = document.querySelector(".list");
	list.innerHTML = "";

	for (var i = 0; i < localStorage.length; i += 1) {
		var key = localStorage.key(i),
				item = localStorage[key],
				li = document.createElement("li");

		li.innerHTML = key + ": " + item;
		list.appendChild(li);
	}
}


Конкретно в этом примере хочу через форму добавлять данные в localStorage. И чтобы при событии storage, на другой странице выводился список всех данных в хранилище.

И, либо у меня уже с головой что то не так и пора отдохнуть, либо что то пошло не так.
Что то я сейчас вообще сообразить не могу.
Как искать объекты DOM? У меня весь код в одном файле для всех страниц, элементы ищутся через document.querySelector...
и как известно document есть у любой страницы, поэтому на той странице на которой нет искомого элементы кидается исключение.
Мне кажется я сейчас не могу уловить элементарных вещей.
В общем подскажите как сделать чтобы не было ошибок что элемент не найден?
  • Вопрос задан
  • 387 просмотров
Пригласить эксперта
Ответы на вопрос 1
Kozack
@Kozack Куратор тега JavaScript
Thinking about a11y
Нужно проверять найден ли элемент.
var field1 = document.querySelector(".key");
if (field1) {
    // ...
}

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

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы