ID和Name都可以用来标识一个标记,Javascript分别有两个方法getElementById和getElementByName来定位Dom节点。
区别如下:
1、我们知道在网页做Post提交时,是以Form(即表单域)为单位进行提交的,一个Form里有若干个表单对象(如),同一个页面里可以为多个Form(Asp.net不同,它只允许有一个,且名字必须为Form1),在表单表提交到服务器端后,可以直接通过Name属性取到表单域的值,却无法通过ID直接取到该表表单对象的值。
2、同一个Form里不能有多个name属性相同的HTML标记,但如果一个网页中有多个Form,则不同的Form里可以有同个Name属性的标记。而ID是全局的,在一个HTML文档里不能有多个节点使用相同的ID,无论它处在哪个Form里。
3、在建立CSS样式的时候,可以建立ID样式表(以#为前缀),使具有该ID的样式直接应用该样式,而无法建立Name样式表。
4、在进行网页编辑时建议使用ID来标识一个节点,而不是使用Name(除非是为了Post提交的需要),同样使用Javascript进行Dom节点定位时建议使用getElementById方法,因为只有ID能唯一标识一个节点,而同一个网页里可能会有多个Name属性相同的节点,它们分别处在不同的Form里。
Id主要是本地用的,比较寻找控件,赋值样式什么的
name是通讯用的,POST和GET的时候,所形成的 键/值 对,都是使用name的
比如
CSS里写的是
#textRed{ background-color:red;}
在asp里要获取这个文本值的时候就是
dim s as string=request("text1")
我打个比方吧。。。表单不是有单选嘛 你把单选的name命名成同一个 他才知道 这是一类比如 有2个选项 一个是男 一个是女 如果你的name名字是一样的 那你单选就可以用。。如果你的name名字不一样 你的2个选项都可以选。。表单中name的大致作用就是告诉哪些表单是一类的 哪些要区分开来。。。或者你在其他地方要调用这个值就加个name
name是早期的html 元素, 现在基本用id了,name还可以用是为了向早期的浏览器兼容