id和name属性之间有什么区别?它们似乎都具有提供标识符的相同目的。
我想知道(特别是关于HTML表单)是否出于任何原因需要或鼓励同时使用两者。
id和name属性之间有什么区别?它们似乎都具有提供标识符的相同目的。
我想知道(特别是关于HTML表单)是否出于任何原因需要或鼓励同时使用两者。
当前回答
下面是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标记-由CSS使用,定义div、span或其他元素的唯一实例。出现在JavaScript DOM模型中,允许您通过各种函数调用访问它们。
字段的Name标记(每个表单都是唯一的),除非您正在执行要传递给PHP/服务器端处理的数组。您可以通过JavaScript按名称访问它,但我认为它不会在DOM中显示为节点,或者可能会受到一些限制(例如,如果我回忆正确,您不能使用.innerHTML)。
下面的论坛主题有相同基本问题的答案,但基本上,id用于脚本标识,name用于服务器端。
HTML控件的id与name属性
我思考和使用它的方式很简单:
id用于CSS和JavaScript/jQuery(它在页面上必须是唯一的)。
当表单通过HTML提交时,该名称用于服务器上的表单处理(表单中的名称必须是唯一的-在某种程度上,请参阅下面Paul的评论)。
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.
name和id都可以被#作为目标,因此不确定为什么只为该任务提及id。
我经常检查这些属性,以创建指向书签的特定链接(由于某些原因,没有提供使用鼠标光标单击标题以进行相同操作),例如Option File InclusionsMySQL 5.6 4.2.2.2使用选项文件文档部分:
https://dev.mysql.com/doc/refman/5.6/en/option-files.html#option-文件内含物
其中定义为<a name=“option file inclusions”></a>(绝对不涉及表单)。
我认为,在HTML中,name属性也比id旧。