Короткие и простые: поскольку элементы, которые вы ищете, не существуют в документе (пока).
В оставшуюся часть этого ответа я буду использовать getElementById
как пример, но то же самое относится к getElementsByTagName
, querySelector
и любому другому методу DOM, который выбирает элементы.
Возможные причины
Есть две причины, по которым элемент может не существовать:
getElementById
, действительно соответствует идентификатору существующего элемента в (сгенерированном) HTML и что у вас не было с ошибкой идентификатор (идентификаторы чувствительный !). Кстати, в большинстве современных браузеров , которые реализуют методы querySelector()
и querySelectorAll()
, нотация стиля CSS используется для извлечения элемента его id
, например: document.querySelector('#elementID')
, в отличие от способа, с помощью которого элемент извлекается его id
в [[16]; в первом символе #
необходимо, во втором это приведет к тому, что элемент не будет извлечен. getElementById
]. Последний случай довольно распространен. Браузеры анализируют и обрабатывают HTML сверху вниз. Это означает, что любой вызов элемента DOM, который встречается до появления этого элемента DOM в HTML, не будет выполнен.
Рассмотрим следующий пример:
Появляется div
после script
. В настоящий момент сценарий выполняется, элемент не существует , но и getElementById
вернут null
.
jQuery
То же самое относится к все селекторы с jQuery. jQuery не найдет элементов, если вы ошибочно написали ваш селектор, или вы пытаетесь выбрать их , прежде чем они на самом деле существуют .
Добавленный поворот - это когда jQuery не найден потому, что вы загрузили скрипт без протокола и запускаетесь из файловой системы:
этот синтаксис используется, чтобы позволить сценарию загружаться через HTTPS на странице с протоколом https: // и для загрузки HTTP-версии на странице с протоколом http: //
У этого есть неудачный побочный эффект попытки и невозможность загрузить file://somecdn.somewhere.com...
Решения
Прежде чем позвонить getElementById
(или любой метод DOM, если на то пошло), убедитесь, что существуют элементы, к которым вы хотите получить доступ, т.е. загружается DOM.
Это может быть обеспечено просто добавив ваш JavaScript после к соответствующему элементу DOM
, и в этом случае вы также можете поместить код непосредственно перед тегом закрывающего тела (
) (все DOM элементы будут доступны в момент выполнения скрипта). [/ g3 6]
Другие решения включают прослушивание событий load
[MDN] или DOMContentLoaded
[MDN] . В этих случаях не имеет значения, где в документе вы помещаете код JavaScript, вам просто нужно запомнить, чтобы весь обработчик DOM обрабатывался в обработчиках событий.
Пример:
window.onload = function() {
// process DOM elements here
};
// or
// does not work IE 8 and below
document.addEventListener('DOMContentLoaded', function() {
// process DOM elements here
});
Более подробную информацию об обработке событий и различиях браузера см. в статьях на странице quirksmode.org .
jQuery
Сначала убедитесь, что jQuery загружен правильно , Используйте инструменты разработчика браузера , чтобы узнать, был ли найден файл jQuery и исправлен ли URL-адрес, если он не был (например, добавьте схему http:
или https:
в начале, отрегулируйте путь, и т. д.)
Прослушивание событий load
/ DOMContentLoaded
- это именно то, что делает jQuery с .ready()
[docs] . Весь ваш код jQuery, который влияет на элемент DOM, должен находиться внутри этого обработчика событий.
На самом деле в учебнике j8uery явно указано:
Как почти все, что мы делаем при использовании jQuery, читает или манипулирует объектной моделью документа (DOM), мы должны убедиться, что мы начинаем добавлять события и т. д., как только DOM готов.
Для этого мы регистрируем готовое событие для документа.
blockquote>$(document).ready(function() { // do stuff when DOM is ready });
В качестве альтернативы вы также можете использовать сокращенный синтаксис:
$(function() { // do stuff when DOM is ready });
Оба эквивалентны.
эта работа для меня python 2.6.6 django 1.6.11 python C:\Python26\Scripts\django-admin.py startproject myapplication
Вам нужно установить django. Кажется, вы только что загрузили его и расширили архив.
pip install -U django
(или вы можете загрузить установщик окон ). После того, как вы сделали вышеуказанные шаги , вы должны убедиться, что C:\Python27\Scripts
находится в вашем PATH
; в противном случае команды не будут работать.
Чтобы установить PATH
, перейдите к Environment Variables
с My Computer
(щелкните правой кнопкой мыши, а затем перейдите в «Управление», затем влево «Дополнительные настройки»).
Наконец, вам нужно запустить python django-admin.py
, а не django-admin.py
Попробуйте использовать. exe вместо .py. Это сработало для меня
У меня такая же проблема, потому что я установил Django вручную. Решение для решения:
easy_install pip
pip uninstall django
pip install django
django-admin.py startproject mysite
и наслаждаться. Если нет, проверьте django-admin-script.py startproject mysite
. Если все в порядке, ваша установка django неверна.
Извините за мой плохой английский, я французский:)
Для окон «django-admin» вам нужно создать проект .exe-файл не является .py-файлом, и он присутствует в следующем месте: C: \ Python27 \ Scripts, поэтому вам нужно добавить это местоположение на ваш путь.
скопируйте файл Django-admin.exe в папку, которую вы используете. файл можно найти в python / python (version) / scripts. когда вы закончите, папка должна появиться в имени вашего файла
Попробуйте следующее: django-admin startproject mysite
Найдите папку, в которой находится django-admin.py. Затем перейдите в Панель управления> Система> Дополнительные параметры системы> Переменные среды. В пользовательских переменных и / или системных переменных выполните поиск записи с именем PATH. Измените его, добавив папку, которую вы обнаружили ранее, используйте другие записи в качестве руководства, в основном просто убедитесь, что они разделены ;
. Если вы сделали все эти шаги, но все еще находитесь в том же приглашении cmd, которое вы использовали, прежде чем делать это, закройте его и откройте новый, чтобы он набирал ваши изменения.
easy_install django
. В моей системе я затем создал C: \ test, после того как Django закончил установку, я побежал django-admin.py startproject testproject
, заменил testproject
тем, что вы хотите назвать своим проектом.
– user
21 July 2013 в 07:03
python ez_setup.py
.
– user
21 July 2013 в 07:09