разница между document.all и document.forms[0]

#javascript

#javascript

Вопрос:

Кто-нибудь может объяснить, в чем разница между

 document.all
  

и
document.forms[0] пожалуйста?

Спасибо

Ответ №1:

document.all дает ссылку на массивоподобный объект, содержащий все элементы документа, в Internet Explorer (IE). Document.forms[0] дает вам указатель на первый элемент формы в документе, во всех браузерах

Тогда эти два совершенно разные. Если у вашей формы есть атрибут name, скажите ‘myform’, тогда в IE на эту форму можно было бы ссылаться с помощью document.all.myform

document.all устарел с IE версии 5 и выше. Вы все еще можете использовать его, хотя даже в IE9 он все еще доступен. Часто он используется для проверки, является ли браузер IE:

 if (document.all) {
  //o no, it's IE again! We have to do it another way!
}
  

Ссылаться на формы в виде document.forms[0] считается плохой практикой. Подробнее об этом можно прочитать здесь

ПРИМЕЧАНИЕ: С момента написания этого ответа был введен IE11, который прекратил поддержку document.all Смотрите Изменения совместимости в IE11 для получения дополнительной информации

Комментарии:

1. @Kooilnc значит, эти два метода полезны только в IE? предположим, что тот же код мы хотим запустить в Chrome или safari, что делать?

2. @Mihir: итог = вы можете использовать document.all в Internet Explorer, и вам явно понадобится это только в Internet Explorer < 5. So document.forms доступен для всех браузеров, включая IE.

3. «о нет, это снова IE! Мы должны сделать это по-другому!» жаль, что этот тест проходит и ваш любимый Chrome.

4. @Annie: конечно, и то же самое касается Opera. Тогда почему ты думаешь, что Chrome — мой «любимый» браузер?

Ответ №2:

Свойство document.all представляет собой массив всех HTML-элементов, которые есть в документе. в то время как Document.forms[0] является первой формой в документе. Вам следует избегать использования document.all.

В Internet Explorer 4 введен document.all DOM (объектная модель документа) для обеспечения доступа к различным частям веб-страницы. Вскоре после этого был введен стандартный DOM-метод getElementById, который, следовательно, доступен во всех браузерах версии 5 . Это означает, что документ.все ссылки нужны только для поддержки IE4.Практически никто больше не запускает IE4, и поэтому поддержка document.all DOM больше не требуется.

Чтобы узнать больше о том, как использовать document.form[0], прочтите это.

Ответ №3:

сначала вы должны использовать document.all.myform для доступа к вашей форме. во втором формате вы можете использовать document.forms[0] для доступа к вашей форме

      both one two is same in function but two is better than one
                             document.all.myform using this your searching all the way rome.