zoukankan      html  css  js  c++  java
  • HTML中id与name的通俗区别

    转自:https://blog.csdn.net/qq_35038153/article/details/70215356

    https://zhidao.baidu.com/question/758288958493128244.html

    id 在HTML中的作用:
          1、用id选择相应的style sheet(风格). 
          2、 <A ..> 链接的目的地
          3、脚本语言用它找目的地(找该id的标签)
          4、作为名字,用于声明某OBJECT element
          5、作为一个标签或块的区分标致(用于从HTML网页中取出数据放入数据库或把HTML翻译成别的格式,等情况).

    name原来是为了标识之用,但是现在根据规范,都建议用id来标识元素。但是name在以下用途是不能替代的:
          1、表单(form)的控件名,提交的数据都用控件的name而不是id来控制。因为有许多name会同时对应多个控件,比如checkbox和radio,而id必须是全文档中唯一的。此外浏览器会根据name来设定发送到服务器的request。因此如果用id,服务器是无法得到数据的。  
          2、frame和window的名字,用于在其他frame或window指定target。   
        
    以下两者可以通用,但是强烈建议用id不要用name:   
    锚点,通常以前写作<a   name="myname">,现在可以用任何的元素id来指定:<div   id="myid">。   
        
    以下只能用id:   
    1、label与form控件的关联, 
           <label   for="MyInput">My   Input</label>   
           <input   id="MyInput"   type="text">   
         for属性指定与label关联的元素的id,不可用name替代。   


    2、CSS的元素选择机制,以#MyId的方式指定应用样式的元素,不能用name替代。   


    3、脚本中获得对象:   
           IE支持在脚本中直接以id(而不是name)引用该id标识的对象。例如上面的input,要在脚本中获得输入的内容,可以直接以MyInput.value来获得。  

          如果用DOM的话,则用document.getElementById("MyInput").value,如果要用name的话,通常先得到包含控件的form,例如document.forms[0],然后从form再引用name,注意这样得到的是经过计算后将发送给服务器的值。

    有一种解释非常通俗易懂:

    name 是表单提交后,给后台处理程序区分不同的输入框。
    例如 name = '用户知名' name =‘密码’,后台程序就会分别去处理用户名和密码。
    而 id 通常道给前台程序,例如 Javascript,CSS,让它去为不同 id 的输入框设置不同的响应动作,风格样式等。回但这些前台语言,有的时候也支持对 name 的识别答。
    id 是不会提交给后台的,所以后台一定只能用 name 去识别。

  • 相关阅读:
    hdoj 1237 模拟
    Codeforces 242E:XOR on Segment(位上的线段树)***
    Tsinsen A1333: 矩阵乘法(整体二分)
    HDU 2830:Matrix Swapping II(思维)
    BZOJ 3110:[Zjoi2013]K大数查询(整体二分)
    POJ 2104:K-th Number(整体二分)
    玲珑OJ 1083:XJT Love Digits(离线处理+哈希)
    玲珑OJ 1082:XJT Loves Boggle(爆搜)
    模板:树状数组(带区间修改和区间更新)
    HDU 5618:Jam's problem again(CDQ分治+树状数组处理三维偏序)
  • 原文地址:https://www.cnblogs.com/ccwx/p/12896955.html
Copyright © 2011-2022 走看看