标签中的name属性和ID属性的区别

2018年05月13日 10:17:44 tssit 阅读数:760
 
编程这么久,细想了一下,发现这个问题还不是很清楚,汗!看了几篇文章,整理了一下,分享下!

一个朋友如是的说到“ID就像是一个人的身份证号码,而Name就像是他的名字,ID显然是唯一的,而Name是可以重复的”我感觉很贴切!【但是太笼统哦,下面细细讲一下!】具体的将“ID是Client端HTML元素的Identity。而Name其实要复杂的多,因为Name有很多种的用途,所以它并不能完全由ID来代替,从而将其取消掉。”

对于name,主要有一下用途:

(1)用途1: 作为可与服务器交互数据的HTML元素的服务器端的标示,比如input、select、textarea、和button等。我们可以在服务器端根据其Name通过Request.Params取得元素提交的值。

(2)用途2: HTML元素Input type='radio'分组,我们知道radio button控件在同一个分组类,check操作是mutex的,同一时间只能选中一个radio,这个分组就是根据相同的Name属性来实现的。

(3)用途3: 建立页面中的锚点,我们知道<a href="URL">link</a>是获得一个页面超级链接,如果不用href属性,而改用Name,如:<a name="PageBottom"></a>,我们就获得了一个页面锚点。

(4)用途4: 作为对象的Identity,如Applet、Object、Embed等元素。比如在Applet对象实例中,我们将使用其Name来引用该对象。
(5)用途5: 在IMG元素和MAP元素之间关联的时候,如果要定义IMG的热点区域,需要使用其属性usemap,使usemap="#name"(被关联的MAP元素的Name)。
   (6)用途6: 某些特定元素的属性,如attribute,meta和param。例如为Object定义参数<PARAM NAME = "appletParameter" VALUE = "value">或Meta中<META NAME = "Author" CONTENT = "Dave Raggett">。
    显然这些用途都不是能简单的使用ID来代替掉的,所以HTML元素的ID和Name的却别并不是身份证号码和姓名这样的区别,它们更本就是不同作用的东西。

【就个人应用来讲,感觉区别最大的地方是:name一般用于request“取值”,而id吧,在使用CSS样式表时用得到】

有位仁兄如是说“id是控件的唯一标识符,服务器后台用id不用name,客户端用id和那么都可以”【.net中的,貌似也有道理!】

还有这位仁兄:

1、我们知道在网页做Post提交时,是以Form(即表单域)为单位进行提交的,一个Form里有若干个表单对象(如<input type="text" name="UserName" value="请输入姓名"/>),同一个页面里可以为多个Form(Asp.net不同,它只允许有一个,且名字必须为Form1),在表单表提交到服务器端后,可以直接通过Name属性取到表单域的值,却无法通过ID直接取到该表表单对象的值。

2、同一个Form里不能有多个name属性相同的HTML标记,但如果一个网页中有多个Form,则不同的Form里可以有同个Name属性的标记。而ID是全局的,在一个HTML文档里不能有多个节点使用相同的ID,无论它处在哪个Form里。

3、在建立CSS样式的时候,可以建立ID样式表(以#为前缀),使具有该ID的样式直接应用该样式,而无法建立Name样式表。

4、在进行网页编辑时建议使用ID来标识一个节点,而不是使用Name(除非是为了Post提交的需要),同样使用Javascript进行Dom节点定位时建议使用getElementById方法,因为只有ID能唯一标识一个节点,而同一个网页里可能会有多个Name属性相同的节点,它们分别处在不同的Form里。

摘自:https://blog.csdn.net/tss139/article/details/80297207

标签中的name属性和ID属性的区别的更多相关文章

  1. Python_selenium之获取当前页面的href属性,id属性,图片信息和截全屏

    Python_selenium之获取当前页面的href属性,id属性,图片信息和截全屏 一.  获取当前页面的全部信息 1. 图片信息包括图片名称.图片大小等信息 2. 只需将图片信息打印出来(ima ...

  2. extjs中第一次访问有效,第二次访问出现部分组件无法显示的,动态改变组件的label值的方法,ExtJs中组件最好少使用ID属性(推荐更多使用Name属性)

    在公司做的一个OA项目中,曾经就遇到了这样的一个问题:(我是在jsp中的div中将js render到div中去的)第一次访问此界面的时候,formpanel上的组件能正常显示,不刷新整个页面的前提下 ...

  3. 018 关联映射文件中<class>标签中的lazy(懒加载)属性

    Lazy(懒加载): 只有在正真使用该对象时,才会创建这个对象 Hibernate中的lazy(懒加载): 只有我们在正真使用时,它才会发出SQL语句,给我们去查询,如果不使用对象则不会发SQL语句进 ...

  4. .net中,控件(Name)属性或ID属性的常见命名规则

    控件名称 缩写 介绍 公共控件   Button btn 按钮 CheckBox chk 复选框 CheckedListBox ckl 显示一个项列表,其中每一项左侧都有一个复选框 ComboBox ...

  5. 019 关联映射文件中集合标签中的lazy(懒加载)属性

    <set>.<list>集合上,可以取值:true/false/extra,(默认值为:true) 实例一:(集合上的lazy=true(默认))class默认lazy=tru ...

  6. 针对标签中设置 disabled="true",$("#id").serialize()获取不到value的解决方法

    今天给<select>增加disabled="true", 发现$("#form").serialize()的结果不包含select标签的值,解决办 ...

  7. a标签中href="javacript:;" href="javacript:void(0);" href="#"区别

    在使用<a>标签时,经常会绑定其他事件比如onclick,这时候我们会给<a>标签的href属性赋值为“#”,“javacript:;”,“javacript:void(0); ...

  8. a标签中的href="#"与href="javascript:void(0)"区别

    转自http://blog.csdn.net/fightplane/article/details/5190037 <a href="#"> 点击链接后,页面会向上滚到 ...

  9. KO ------- 表中字段名和实体类属性名不一致

    -----------------------siwuxie095 KO ------- 表中字段名和实体类属性名不一致 如果数据库表中的字段名和实体类的属性名不一致,那么在查询时, 相应字段的结果就 ...

随机推荐

  1. Git入门 时光穿梭鸡 版本回退 工作区 暂存区

    分布式集中式 CVS及SVN都是集中式的版本控制系统 , 而Git是分布式版本控制系统 集中式版本控制系统,版本库是集中存放在中央服务器的, 而干活的时候,用的都是自己的电脑,所以要先从中央服务器取得 ...

  2. nodejs安装使用express

    1.用Express 应用程序生成器 express-generator 快速搭建express框架 1.1安装: npm install express-generator -g 1.2 生成目录: ...

  3. android studio 改包名

    使用Android studio有一段时间了,但是每次修改包名的时候都是用一种简单粗暴的方式,那就是新建一个想要的包名,然后直接拖拽. 但是这样有个不好的地方就是每次都要去修改manifest.xml ...

  4. AES 加密 PHP 和 JAVA 互通

    PHP代码: <?php class Security { public static function encrypt($input, $key) { $size = mcrypt_get_b ...

  5. uva11357 Matches

    Matches UVA - 11375 题意: 给你n根matches, 你可以拼出多少个数字0~9. 不必全部用完. 解题思路: 1. 计数题, 本题可以用图来理解. 把"已经使用了i根m ...

  6. java使用Robot类在eclipse上实现自动编写代码

    运行时,把输入法关掉,切换成系统自带的输入法即可: 第二个类是自定义的键值Map集合,主要是为了方便输入字符串,有需要的可以自行添加: 主要的代码如下,会创建一个名称为Automaton.java的类 ...

  7. gui - tkinter 开发

    GUI 用户交互界面 tkinter 介绍 tkinter python自带的gui库,对图形图像处理库tk的封装 其他gui:pythonwin,wxpython,pyQT.. 概念介绍 组件:组成 ...

  8. link-1-STL 标准模板库

    STL(Standard Template Library,标准模版库)是C++语⾔言标准中的重要组成部分.STL以模板类和模版函数的形式为程序员提供了了各种数据结构和算法的实现,程序员吐过能够充分的 ...

  9. [Android]XML和JSON的区别

    1.定义介绍 (1).XML定义 扩展标记语言 (Extensible Markup Language, XML) ,用于标记电子文件使其具有结构性的标记语言,可以用来标记数据.定义数据类型,是一种允 ...

  10. 【OGG】OGG的单向DML复制配置(一)

    [OGG]OGG的单向DML复制配置(一) 一.1  BLOG文档结构图 一.2  前言部分 一.2.1  导读 各位技术爱好者,看完本文后,你可以掌握如下的技能,也可以学到一些其它你所不知道的知识, ...