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

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


当前回答

链接目标的名称已弃用,在HTML5中无效。至少在最新的Firefox(v13)中,它不再有效。将<a name=“hello”>更改为<a id=“hello“>。

目标不需要是<a>标记。它可以是<p id=“hello”>或<h2 id=“hello>等,这通常是更干净的代码。

正如其他帖子所明确指出的,名称仍然在表单中使用(需要)。它仍然在META标签中使用。

其他回答

id将给一个元素一个id,所以一旦你编写了真正的代码(比如JavaScript),你就可以使用这个id来读取元素。名称只是一个名称,所以我想用户可以看到元素的名称。

例子:

<h1 id="heading">text</h1>
<script>
  document.getElementById("heading"); // Reads the element that has the id "heading".
</script>
// You can also use something like this:
document.getElementById("heading").value; // Reads the value of the selected element.

下面是id属性的有趣用法。它在<form>标记中使用,用于识别</form>边界之外的<input>元素的表单,以便将它们与表单中的其他<input〕字段一起包含。

 <form action="action_page.php" id="form1">
     First name: <input type="text" name="fname"><br>
     <input type="submit" value="Submit">
 </form>

 <p>The "Last name" field below is outside the form element, but still part of the form.</p>
 Last name: <input type="text" name="lname" form="form1">

ID用于唯一标识元素。

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

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

id和名称之间没有字面上的区别。

name是一个标识符,在浏览器发送的HTTP请求中用作与元素的value属性中包含的数据相关联的变量名。

另一方面,id是浏览器、客户端和JavaScript的唯一标识符。因此,表单需要一个id,而其元素需要一个名称。

id更具体地用于向唯一元素添加属性。在DOM方法中,Id在JavaScript中用于引用要在其上执行操作的特定元素。

例如:

<html>

<body>
    <h1 id="demo"></h1>

    <script>
        document.getElementById("demo").innerHTML = "Hello World!";
    </script>
</body>

</html>

name属性也可以实现这一点,但最好在表单中使用id,而在小表单元素(如input标记或select标记)中使用name。

在这个问题一直存在的过程中,我很懊恼(也许有点难过),没有人想过提到可访问性,尽管它一直很重要,但它一直在管理层和软件工程师中稳步获得支持(仅从我的个人观察来看;没有硬数据支持)。

我可以提供的一个统计数据如下(来源):

因此,对可访问性缺点的认识呈现出稳步增长的趋势。同样的参考文献提到,从这些数字中,我们可以观察到每小时至少有一次诉讼被提起!

那么,可访问性如何影响姓名与身份?

根据万维网联盟(W3C):

标签的for属性必须与表单控件。