id与name的做用,做为标签的标识符,基本上是同样的。html
name是老方法,id是在name基础上发明的,比name“现代化”一点,用的范围广一点数据库
<...>中的name原来(刚发明时)就是用于本页按一下转向过去用的。浏览器
通常认为:ID就像是一我的的身份证号,显然是惟一的。服务器
而name就像是他的名字,而name是能够重复的。app
ID和name问题描述:spa
在页面里输入了一个input type="hidden",只写了一个id="Wxinfo",赋值后submit,翻译
在后台用Request.Params["Wxinfo"]却怎么也找不到值。后来明白缘由用nameorm
来标示,因而在input里加了一个name="Wxinfo",就能够了。htm
第一段里对id和name的解说有点笼统,但它对id来讲是彻底对的,他就是Client端对象
html元素的Identity。而name其实要复杂的多,由于name有不少用途,因此它并不能彻底由ID来代替。
name的具体用途有:
一、做为可与服务器交互数据的HTML元素的服务器短的标识,好比input,select,button等
咱们能够在服务器端根据Name经过Request.Parems取得元素提交的值。
二、HTML元素Input type="radio"分组,咱们知道radio button控件在同一个分组类
check操做是mutex的,同一时间只能选中一个radio,这个分组就是根据相同的name属性来实现的。
三、创建页面中的锚点,咱们知道<a href="URl">link</a>得到一个页面超连接,若是不用href
属性而改用Name,如<a name="PageBottom"></a>,咱们就得到了一个页面锚点。
四、做为对象的Identity,如Applet、Object、Embed等元素,好比在Applet对象实例中
咱们将使用Name来引用对象。
五、在IMG元素与MAP元素之间关联的时候,若是要定义IMG的热点区域,须要使用其
属性usemap 使用usemap="#name"(被关联的MAP元素的Name)
六、某些特定元素的属性,如attribute、meta和param.例如为Object定义参数
<PARAM NAME="appletParameter" VALUE="value">或Meta中
<META NAME="Author" CONTENT="Dave Raggett">.
以上的用途都不能简单的使用ID来代替,因此HTML元素的ID和Name的却别并非身份证号码和姓名这样的区别,它们更本就是不一样做用的东西。 ----------------------------------------------------------------------------------------- 除 BASE, HEAD, HTML, META, SCRIPT, STYLE, TITLE 标签外,id 均可用.
name只用于APPLET,SELECT,FORM,FRAME,IFRAME,IMG,A,INPUT,OBJECT,MAP,PARAM,META. (name有时有本身的用途)
table 中 name 无定义, 应当用 id.
有些标签,能够同时有name和id。
在一个HTML网页中,id是惟一的。
id 在HTML中的做用:
(1) 用id选择相应的style sheet(风格).
(2) <A ..> 连接的目的地
(3) 脚本语言用它找目的地(找该id的标签)
(4) 做为名字,用于声明某OBJECT element
(5) 做为一个标签或块的区分标致(用于从HTML网页中取出数据放入数据库或把HTML翻译成别的格式,等状况).
(参考HTML 4.0 定义)
name原来是为了标识之用,可是如今根据规范,都建议用id来标识元素。
如下只能用name:
1. 表单(form)的控件名,提交的数据都用控件的name而不是id来控制。
由于有许多name会同时对应多个控件,好比 checkbox和radio,而id必须是全文档中惟一的。
此外浏览器会根据name来设定发送到服务器的request。
所以若是用id,服务器是无 法获得数据的。
2. frame和window的名字,用于在其余frame或window指定target。
如下只能用id:
1. label与form控件的关联, <label for="MyInput">My Input</label> <input id="MyInput" type="text">
for属性指定与label关联的元素的id,不可用name替代。
2. CSS的元素选择机制,以#MyId的方式指定应用样式的元素,不能用name替代。
3. 脚本中得到对象: IE支持在脚本中直接以id(而不是name)引用该id标识的对象。
例如上面的input,要在脚本中得到输入的内容,能够直接以 MyInput.value来得到。
若是用DOM的话,则用document.getElementById("MyInput").value,
若是要用name的话,一般先获得包含控件的form,例如 document.forms[0],而后从form再引用name,
注意这样获得的是通过计算后将发送给服务器的值。
name与id的其余区别是: id要符合标识的要求,好比大小写敏感,最好不要包含下划线(由于不兼容CSS)。而name基本上没有什么要求,甚至能够用数字 。
用CSS控制这个连接的停留样式,
能够这样写 #m_blog div .opt a:hover{color:#D57813} 或 #myLink:hover{color:#D57813}
NAME主要应用在交互式网页,表单提交给某个服务器端脚本后接收变处理量使用。从源代码的规范性和兼容性角度出发,如在客户端
脚本里要索引某个对象,建议用document.getElementById()方法,尽可能不要直接使用NAME的值
文转自http://wenku.baidu.com/view/a3fcdc976bec0975f465e2c4.html。