id和name的联系:
(1)都可以用来标识一个元素
(2)在Javascript中,通过getElementById和getElementByName都定位DOM节点。
区别:
(1)id具有全局唯一性,在整个文档中不能有重复的id,主要在客户端脚本里使用。name属性可以标识多个元素,同一个Form里不能有多个name属性相同的HTML标记,但如果一个网页中有多个Form,则不同的Form里可以有同个Name属性的标记。
(2)label与form之间的关联必须使用到id属性。name属性做不到。
<label for="hrcInput">My Input</label> <input id="hrcInput" type="text">
(3)在CSS样式表中,以#+id值为前缀可以建立id样式表,快速找到指定元素,为它设置样式。但name值没有办法作为选择器在CSS中使用。
(4)使用Javascript进行Dom节点定位时建议使用getElementById方法,可以快速定位唯一的DOM节点,而使用getElementByName会选中多个form中具有相同name值的节点。
(5)在多个单选input元素中
<input type="radio" name=" ">
使用同一个name值可以实现单选功能,是name属性特有的功能。
(6)网页做Post提交时,是以Form(即表单域)为单位进行提交的,一个Form里有若干个表单对象,同一个页面里可以为多个Form(Asp.net不同,它只允许有一个,且名字必须为Form1),在表单表提交到服务器端后,可以直接通过Name属性取到表单域的值,却无法通过ID直接取到该表表单对象的值。
(7)IE支持在脚本中直接以id引用该id标识的对象。例如hrcInput.value,name属性不具有这个功能。
时间: 2024-11-06 01:48:06