Я изучаю jQuery и слежу за учебником, очень странная ошибка озадачила меня. Вот мой html:
Когда я добавляю элементы. При нажатии клавиши возврата нет проблем. Но когда я нажимаю кнопку «Отправить», тогда firebug показывает эту ошибку
Я попытался использовать jQuery вместо замены
На этот раз ошибка:
Я пытался отладить это некоторое время, но я просто не понимаю. Вероятно, это действительно глупая ошибка, которую я сделал. Любая помощь наиболее ценится.
Изменить: Я использую jQuery 1.6.1
Это document.getElementById() , а не document.getElementById() . Проверьте корпус на Id .
Обратите внимание на нижний регистр d в Id .
Я изменил ваш script для работы с jQuery, если вы этого хотите.
В этом есть несколько ошибок, как вы можете видеть в других сообщениях, но причина, по которой вы получаете эту ошибку, состоит в том, что вы называете форму getElementById. Таким образом document.getElementById теперь указывает на вашу форму вместо метода по умолчанию, который предоставляет javascript. Смотрите мою скрипку для рабочей демонстрации https://jsfiddle.net/jemartin80/nhjehwqk/.
В моем случае я использовал его для element вместо document , и в соответствии с MDN:
I’m learning jQuery and was following a tutorial, a very strange error has perplexed me. Here’s my html :
When I add elements By hitting the return key, there’s no problem. But When I click the Submit Button then firebug shows this error
I tried to use jQuery instead replacing it with
This time the error is :
I’ve been trying to debug this for some time but i just don’t get it. Its probably a really silly mistake that i’ve made. Any help is most appreciated.
Edit : I’m using jQuery 1.6.1
5 Answers 5
It’s document.getElementById() and not document.getElementByID() . Check the casing for Id .
Note the lower-case d in Id .
I’ve modified your script to work with jQuery, if you wish to do so.
There are several things wrong with this as you can see in the other posts, but the reason you’re getting that error is because you name your form getElementById. So document.getElementById now points to your form instead of the default method that javascript provides. See my fiddle for a working demo https://jsfiddle.net/jemartin80/nhjehwqk/.
In my case, I was using it on an element instead of document , and according to MDN:
Ошибка: Uncaught TypeError: form1[0].getElementsByName is not a function
В form1[0] находится HTMLElement, почему по ему нельзя сделать поиск по тегу name, это же не NodeList?
- Вопрос задан более трёх лет назад
- 2214 просмотров

The getElementsByName(name) method takes a string name, and must return a live NodeList containing all the HTML elements in that document that have a name attribute whose value is equal to the name argument (in a case-sensitive manner), in tree order.
Судя по формулировке, которая дана в спецификации, этот метод есть только у документа и его нельзя вызывать на произвольных нодах. Здесь это написано прямым текстом.
Стоит отказаться от него в пользу метода querySelector():
Как видите, возвращается сразу нода, а не коллекция, что дополнительно упрощает код.

Распечатайте и на стенку повесьте)