html里name和id的区别

来源:互联网 发布:网络直播平台 论文 编辑:程序博客网 时间:2024/06/06 07:35
html的name和id可以类比身份证的姓名和身份证编号编号id具有唯一性,一个id只出现一次。名称name具备可重复性,可以多次出现。在css中两者都具备识别html元素的作用,name用点号.表示,id用井号#一般name用于通用多次出现元素的样式定义,id用于唯一性元素样式定义。在表单当中,由于有些控件具备多元素特性,例如radio checkbox等,使用id不便于表单数据的提交,此外浏览器会根据name来设定发送到服务器的request,因此在表单当中,用name来提交数据。当然,在实际的html中,也完全可以不用id,用单独的class也可以起到代替id的作用。但是在js中,是无法通过class直接后去html元素的, 定义id便于相关操作。
更多详情可参考百度文库http://wenku.baidu.com/view/a3fcdc976bec0975f465e2c4.html
以下是截取相关片段:
name原来是为了标识之用,但是现在根据规范,都建议用id来标识元素。   
以下只能用name: 
 1. 表单(form)的控件名,提交的数据都用控件的name而不是id来控制。因为有许多name会同时对应多个控件,比如   checkbox和radio,而id必须是全文档中唯一的。此外浏览器会根据name来设定发送到服务器的request。因此如果用id,服务器是无   法得到数据的。   
2. frame和window的名字,用于在其他frame或window指定target。    
以下只能用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,注意这样得到的是经过计算后将发送给服务器的值。
id和name的作用,作为标签的标识符,基本上是一样的,name是老方法,id是在name基础上发明的,比name用的范围更广一点。现在根据规范,都建议使用id。
在dreamwear中,插入表单元素填写的是id,但在代码中既有id值,又有name值,name值保持与id值一致。
 <input type="text" name="username" id="username" />
0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 华为手机一直是耳机模式怎么办 华为手机进水了耳机模式怎么办 蓝牙耳机通话声音小怎么办 华为手机自动进入耳机模式怎么办 华为手机耳机怎么挂了电话怎么办 华为手机听筒声音小怎么办 华为p9手机听筒声音小怎么办 苹果6总是耳机模式怎么办 苹果没有插耳机模式怎么办 苹果手机切换耳机模式怎么办 苹果6s出现耳机模式怎么办 苹果6变成了耳机模式怎么办 苹果手机成耳机模式了怎么办 华为mate8耳机声音小怎么办 移动sim卡丢了怎么办 蓝牙耳机开不开机怎么办 苹果手机蓝牙不匹配怎么办 苹果6蓝牙坏了怎么办 蓝牙密钥不正确不匹配怎么办 华为p6开不了机怎么办 华为c199手机不停重启怎么办 华为手机用户数据被锁定怎么办 朵唯手机丢了怎么办 网件r6220穿墙差怎么办 无线网打王者卡怎么办 酷翼x9忘了密码怎么办 楼上的路由器楼下不好使怎么办 电信4g网络不好怎么办 农村只有2g网怎么办 电信卡4g网速慢怎么办 小米手机触屏失灵怎么办 荣耀v10电信网速很慢怎么办 华为路由器掉线了怎么办 三星s6只识别一张卡怎么办 华为手机卡不显示了怎么办 华为账号手机卡丢了怎么办 荣耀8耗电量太快怎么办 vivo卡2不显示怎么办 电信宽带玩王者荣耀卡怎么办 联通4g玩游戏卡怎么办 华为悦盒遥控器丢了怎么办