HTML:对于name和id属性,始终可以使用相同的标识符吗?

Rol*_*uhs 3 html javascript css

基本上,"name"属性用于服务器端编程(名称/值对在请求中发送),"id"属性用于客户端编程(即Javascript和CSS).

但两者都实现了基本相同的功能 - 提供元素的唯一标识.并且为了使事情变得复杂,如果一个东西只有一个标识符就很有用.

因此问题 - 对于需要"id"和"name"的标签:

有没有理由为name和id属性选择不同的标识符?是否存在需要使用不同标识符的用例?语法有什么不同吗?(例如,您可以使用"myarray [123]"作为name属性,PHP将正确理解并创建一个数组,也可以以类似的方式用于Javascript或CSS中的id属性 - 如果不是,则是语法错误或它只是一个有括号的有效标识符?)是否区分大小写?

Rob*_*obG 5

有没有理由为name和id属性选择不同的标识符?

是.ID必须是唯一的,名称不一定是.对于无线电组的成员,名称必须相同,因此它们不能都具有相同的ID,实际上它们可以通过ID访问元素是有问题的.如果您不通过ID访问它们,为什么要这样做?

是否存在需要使用不同标识符的用例?

是的,单选按钮.只有一个可以具有与其名称相同的ID.但除此之外,几乎没有限制,比如永远不会给表单控件提供表单本身的方法或属性的名称或id,比如"submit",因为它会掩盖表单的同名属性.

名称" _charset_"和" isindex"也很特别.

语法有什么不同吗?(例如,您可以使用"myarray [123]"作为name属性,PHP将正确理解并创建一个数组,也可以以类似的方式用于Javascript或CSS中的id属性 - 如果不是,则是语法错误或它只是一个有括号的有效标识符?)

是.nameid属性值的规则类似,但ID不能包含空格(name的某些值是特殊的,请参见上文).HTML4中的id属性有更多限制(例如,ID不能以数字开头),但实际上它们并未在浏览器中实现.

必须引用一些在名称和ID中有效的字符用作CSS选择器,例如:

<div id="d[]">
Run Code Online (Sandbox Code Playgroud)

CSS选择器是:

#d\[\]
Run Code Online (Sandbox Code Playgroud)

并与Selectors API一起使用:

#d\\[\\]
Run Code Online (Sandbox Code Playgroud)

(例如document.querySelector('#d\\[\\]').

是否区分大小写?

是.