这个问题在这里已经有答案了:
HTML中id和name属性之间的差异
(21个答案)
(21个答案)
两年前关闭的
使用HTML时<;输入>tag,使用name和id属性有什么区别,特别是我发现它们有时命名相同
在HTML4.01中:
名称属性
- 仅在
上有效<;a>,<;表格>,<;iframe>,<;img>,<;地图>,<;输入>,<;选择>,<;textarea> - 名称不必是唯一的,可以用于将元素分组在一起,例如单选按钮和;复选框
- 无法在URL中引用,尽管JavaScript和PHP可以看到URL,但有一些解决方法
- 在JavaScript中使用
getElementsByName()引用 - 与
id属性共享相同的命名空间 - 必须以字母开头
- 根据规范,它是区分大小写的,但大多数现代浏览器似乎并不遵循这一点
- 用于表单元素以提交信息。只有带有
名称属性的输入标记才会提交到服务器
Id属性
- 对除
以外的任何元素有效<;基地>,<;html>,<;头>,<;meta>,<;参数>,<;脚本>,<;风格>,<;标题> - 在浏览器中呈现的页面中,每个Id都应该是唯一的,可能在同一文件中,也可能不在同一个文件中
- 可以用作URL中的锚引用
- 在CSS或URL中用
#符号引用 - 在JavaScript中用
getElementById()引用,在jQuery中用$(#<;id>;) - 与名称属性共享相同的名称空间
- 必须至少包含一个字符
- 必须以字母开头
- 不得包含字母、数字、下划线(
)、破折号(-)、冒号(:)或句点()以外的任何内容 - 不区分大小写
在(X)HTML5中,所有内容都是一样的,除了:
名称属性
- 在
上无效<;表格>还有吗 - XHTML说它必须全部是小写的,但大多数浏览器都不这样做
Id属性
- 对任何元素都有效
- XHTML说它必须全部是小写的,但大多数浏览器都不这样做
这个问题是在HTML4.01成为标准时提出的,许多浏览器和功能与今天不同