Я чувствую себя немного глупо, чтобы спросить об этом, потому что это должно быть так просто, но я очень расстроен.Использование querySelectorВсе внутри цикла for-in-loop
У меня есть несколько div, которые я хочу показать только по одному, поэтому я хочу скрыть остальные. Мой подход:
var elements = document.querySelectorAll("div");
for (i in elements) {
elements[i].style.setProperty("display", "none");
}
Firefox всегда говорит elements[i].style.setProperty();
неопределен. Я сделал обходной путь с использованием обычного цикла for без использования in
, но мне все равно хотелось бы знать, почему это не работает.
Заранее благодарен!
Huh. На самом деле, это то, что я сделал в качестве обходного пути. Я думал, что более правильным кодом будет использовать метод для установки 'style', чем установка его с помощью прямой модификации свойств. И почему я должен использовать обычный цикл for, точно? Я вижу, что это работает, но не почему моя версия не будет ... –
Во-первых, использование цикла 'in..in' выполняет итерацию по всем перечислимым свойствам, что может вызвать проблемы в некоторых редких случаях. Кроме того, в цикле 'for ... in' нет гарантированного порядка, и часто вам нужно будет перебирать элементы по порядку, особенно если они изменяются, поэтому рекомендуется использовать регулярный цикл' for' для нолисты, и поэтому они имеют длину, чтобы быть «подобной массиву». – adeneo