id和name属性之间有什么区别?它们似乎都具有提供标识符的相同目的。

我想知道(特别是关于HTML表单)是否出于任何原因需要或鼓励同时使用两者。


当前回答

ID标记-由CSS使用,定义div、span或其他元素的唯一实例。出现在JavaScript DOM模型中,允许您通过各种函数调用访问它们。

字段的Name标记(每个表单都是唯一的),除非您正在执行要传递给PHP/服务器端处理的数组。您可以通过JavaScript按名称访问它,但我认为它不会在DOM中显示为节点,或者可能会受到一些限制(例如,如果我回忆正确,您不能使用.innerHTML)。

其他回答

我思考和使用它的方式很简单:

id用于CSS和JavaScript/jQuery(它在页面上必须是唯一的)。

当表单通过HTML提交时,该名称用于服务器上的表单处理(表单中的名称必须是唯一的-在某种程度上,请参阅下面Paul的评论)。

下面的论坛主题有相同基本问题的答案,但基本上,id用于脚本标识,name用于服务器端。

HTML控件的id与name属性

以下是一个简短的总结:

id用于标识文档中的HTML元素对象模型(通过JavaScript或CSS样式)。需要id在页面中是唯一的。name对应于表单元素并标识发布的内容返回到服务器。

ID用于唯一标识元素。

名称用于表单中。虽然您提交了一份表格,但如果您不提供任何名称,将不会提交任何内容。因此,表单元素需要一个名称来通过表单方法(如“get或push”)进行标识。

只有具有name属性的才会熄灭。

如果您没有使用表单自己的提交方法将信息发送到服务器(而是使用JavaScript),则可以使用name属性将额外的信息附加到输入中,就像将其与隐藏的输入值配对一样,但它看起来更整洁,因为它包含在输入中。

虽然我认为在未来它可能不会被允许通过,但这一点目前在Firefox中仍然有效。

您可以有多个具有相同名称值的输入字段,只要您不打算以老式方式提交。