HTML id和name的区别

作者: 落花的季节 | 来源:发表于2016-11-28 20:47 被阅读93次

    HTML中的id和name

    • id
      此属性指定一个元素的名称。此名称必须在文档中是唯一的。
    • name
      单独地在一个网页里面,一个控件是否设置它的 name 属性是不会影响到这个网页的功能实现的。但是,当我们需要把这个控件所关联的数据传递到数据库时,就必须要设置 name 属性,否则,这个值是没有办法传到服务器上面得到保存的。一个name可以同时对应多个控件,比如checkbox和radio。

    id和name的命名规则

    id与name属性的取值,必须以英文字母开始([A-Z,a-z]),后面可跟随:

    • 英文字母
    • 数字([0-9])
    • 连字符("-")
    • 下划线("_")
    • 冒号(":")
    • 句点(".")

    id的用途

    • id是HTML元素的Identity,主要是在客户端脚本里用。
    • 作为CSS选择符
    • 用id作为CSS(style sheet)的选择符
    • 代码示例:
    #dreamducolor_id
    {
        color: #cccc00;
    }
    
    • 作为JavaScript引用的元素名称
      作为通过脚本语言(例如:javascript)引用特定元素的方法
    • label与form控件的关联,for属性指定与label关联的元素的id,不可用name替代。如
    <label for="MyInput">My Input</label>            
    <input id="MyInput" type="text">    
    
    • 获取上例:
    var content;
    content=document.getElementById("MyInput").value;
    
    • 定义锚点
      定义页面锚点,作为超级链接(A)的目的地(同name属性中定义锚点的方式)
    <a id="dream" href="href="#dreamdu"">My dream</a>
    
    • 声明object元素
      作为声明HTML object元素的名称
    • 提高终端通用处理
      为了客户端通用的处理(例如:当解压数据从HTML网页到数据库中或翻译HTML文档为其它格式时,用户标识区域)

    name的用途

    • 标识HTML表单
    • 在提交HTML表单时,通过HTTP的Get或Post将表单数据传送到服务端,name用于标识这些表单元素,比如input、textarea、select,例如:
    用户名: <input type="text" id="username" name="username" />
    密码: <input type="password" id="password" name="password" />
    
    • 在HTML表单中,input元素的type取radio时,会出现id不同而name相同的元素,例如:
    <input type="radio" name="select" id="select1">
    <input type="radio" name="select" id="select2">
    
    • 定义锚点
      定义页面锚点,作为超级链接(A)的目的地。使用name属性时我们通常可以这样定义:
    <a name="dream">My dream</a>
    

    代替了<a href="url">My dream</a>的用法。

    id与name的区别

    • id要符合标识的要求,比如大小写敏感,最好不要包含下划线(因为不兼容CSS)。而name基本上没有什么要求,甚至可以用数字。
    • table、tr、td、div、p、span、h1、li等元素一般用id。与表单相关的元素也可以赋ID值, 但为这些元素赋ID值的时候引用这些元素的方法就要变一下了,具体的如下:
    • 赋name时,引用元素的方式: document.formName.inputName 或 document.frames("frameName")
    • 赋id时,引用元素的方式: document.all.inputID 或 document.all.frameID
    • 除去与表单相关的元素,只能赋id不能赋name,这些元素有body、li、a、table、tr、td、th、p、div、span、pre、dl、dt、dd、font、b等等。

    相关文章

      网友评论

      • 6d96978eeefb:但是,当我们需要把这个控件所关联的数据传递到数据库时,就必须要设置 name 属性,否则,这个值是没有办法传到服务器上面得到保存的

        学到了,非常棒。你这篇文章写的非常清楚,看了非常受益。👍

      本文标题:HTML id和name的区别

      本文链接:https://www.haomeiwen.com/subject/ocnopttx.html