Ответ 1
Атрибут name
действителен только для элементов <form>
и form (<input>
, <textarea>
и <select>
). Он использовал, чтобы указать name
для связи с парой имя/значение, которая отправляется на сообщение формы.
Например:
<input type="checkbox" name="foo" value="1" />
если флажок отправлен foo=1
. В DOM вы можете ссылаться на элементы формы из коллекции form.elements
, указав name
в качестве индекса. Если name
не является уникальным, коллекция возвращает массив элементов, а не элемент. Современная поддержка DOM для поиска элементов формы по имени:
document.getElementsByName(nameValue)
note: он всегда возвращает массив, даже если найден только один элемент.
id
атрибут из мира XML и является уникальным идентификатором для любого node, а не только элементов формы. В отличие от атрибута name
он действителен для любого HTML node. Также как и атрибут name
, он должен следовать правилам действительного идентификатора. Определенные должны начинаться с альфы и содержать только альфа ([a-zA-Z]
), цифры, дефис, подчеркивание и двоеточия (примечание: ASP.NET нарушает это правило, запустив зарезервированные идентификаторы с подчеркиванием - таким образом, они всегда будут выходить из строя HTML/XML lint - на самом деле некоторые прокси-серверы разделяют их). Чтобы найти любой элемент HTML с помощью id
, вы используете:
document.getElementById(idvalue)
это возвращает только один DOM node.