转:html id与name区别

id与name的作用,作为标签的标识符,基本上是一样的.name是老方法,id是在name基础上发明的,比name"现代化"一点,用的范围广一点. <A..> 中的name原来(刚发明时)就是用于本页按一下转向过去用的。我们一般认为:ID就像是一个人的身份证号码,显然是唯一的,而Name就像是他的名字,而Name是可以重复的。

ID和Name问题描述:在页面里输入了一个input type="hidden",只写了一个ID='SliceInfo',赋值后submit,在后台用Request.Params["SliceInfo"]却怎么也找不到值。后来明白原因用Name来标示,于是在input里加了个Name='SliceInfo',就一切ok了。

第一段里对于ID和Name的解答说的太笼统了,当然那个解释对于ID来说是完全对的,它就是Client端HTML元素的Identity。而Name其实要复杂的多,因为Name有很多种的用途,所以它并不能完全由ID来代替。具体用途有:

用途1: 作为可与服务器交互数据的HTML元素的服务器端的标示,比如input、select、textarea、和button等。我们可以在服务器端根据其Name通过Request.Params取得元素提交的值。
用途2: HTML元素Input type='radio'分组,我们知道radio button控件在同一个分组类,check操作是mutex的,同一时间只能选中一个radio,这个分组就是根据相同的Name属性来实现的。
用途3: 建立页面中的锚点,我们知道<a href="URL">link</a>是获得一个页面超级链接,如果不用href属性,而改用Name,如:<a name="PageBottom"></a>,我们就获得了一个页面锚点。
用途4: 作为对象的Identity,如Applet、Object、Embed等元素。比如在Applet对象实例中,我们将使用其Name来引用该对象。
用途5: 在IMG元素和MAP元素之间关联的时候,如果要定义IMG的热点区域,需要使用其属性usemap,使usemap="#name"(被关联的MAP元素的Name)。
用途6: 某些特定元素的属性,如attribute,meta和param。例如为Object定义参数<PARAM NAME = "appletParameter" VALUE = "value">或Meta中<META NAME = "Author" CONTENT = "Dave Raggett">。

以上的用途都不能简单的使用ID来代替,所以HTML元素的ID和Name的却别并不是身份证号码和姓名这样的区别,它们更本就是不同作用的东西。
-----------------------------------------------------------------------------------------
除 BASE, HEAD, HTML, META, SCRIPT, STYLE, TITLE 标签外,id 都可用.

name只用于APPLET,SELECT,FORM,FRAME,IFRAME,IMG,A,INPUT,OBJECT,MAP,PARAM,META. (name有时有自己的用途)

table 中 name 无定义, 应当用 id.

有些标签,可以同时有name和id。

在一个HTML网页中,id是唯一的。

id 在HTML中的作用:

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

(参考HTML 4.0 定义)


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,注意这样得到的是经过计算后将发送给服务器的值。
name与id的其他区别是:
id要符合标识的要求,比如大小写敏感,最好不要包含下划线(因为不兼容CSS)。而name基本上没有什么要求,甚至可以用数字

用CSS控制这个链接的停留样式,
可以这样写 #m_blog div.opt a:hover{color:#D57813} 或 #myLink:hover{color:#D57813}
NAME主要应用在交互式网页,表单提交给某个服务器端脚本后接收变处理量使用。从源代码的规范性和兼容性角度出发,如在客户端
脚本里要索引某个对象,建议用document.getElementById()方法,尽量不要直接使用NAME的值

转载于:https://www.cnblogs.com/babykick/archive/2012/01/15/2323059.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/422599.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

PHP企业级开发环境配置全攻略-IDE+SVN++(转)

zend studio一直被认为是最好的php IDE&#xff0c;然而zend studio对javascript和css的支持一直很弱。刚刚发布的zend studio 8 加入了javascript调试的功能&#xff0c;对css的支持也改进了。然而zend studio是要收费的。我在这里推荐一套开源免费的可比拟zend studio的php开…

java 生成url_JAVA 通过URL生成水印图

Overridepublic OutputStream watermark1(String ossURL, String logoOsskey, HttpServletResponse response) {lock.lock();OutputStream os null;InputStream imageStreamnull;//水印String logoPath ossService.getOssURL(logoOsskey,bucket);//原图ossURLtry {osresponse…

前端学习(381):CSS3 的视口单位vw、vh实现自适应(带有px,em,rem的简单介绍)

一、px&#xff0c;em&#xff0c;rem&#xff0c;vw的简单介绍 1、px px其实就是像素的意思&#xff0c;全称pixel&#xff0c;也就是图像的基本采样单位。对于不同的设备&#xff0c;它的图像基本单位是不同的&#xff0c;比如显示器和打印机。而我们通常所说的显示器分辨率…

SAP 那点事BW HANA

作为在去年10月份SAP公司大会上隆重推出的产品&#xff0c;不得不提&#xff0c;HANA是十分强大的&#xff0c;它与BW是相辅相成的&#xff0c;但又可以独立于BW之外&#xff0c;虽然建模功能不如BW强大&#xff0c;但是它的ETL较之BW快上了至少10倍以上&#xff0c;速度和可实…

java数组中相同的元素个数_java求两个数组中相同元素出现的次数

法一public class Methodfifth {public void mixed(int array1[], int n1, int array2[], int n2){int i 0, j 0,number0;while (i < n1&&j < n2){if (array1[i] array2[j]){number;i;j;}else if (array1[i]>array2[j]){j;}else if (array1[i] < array2…

实例1.2:获得应用程序主窗口指针

主窗口指针保存在CWinThread::m_pMainWnd中&#xff0c;可以先调用AfxGetApp函数获得应用程序的指针&#xff0c;然后通过应用程序的指针获得其主窗口的指针。 //获得应用程序指针CMy1_2App* pApp (CMy1_2App*)AfxGetApp();//获得主窗口指针CWnd* pMainWnd pApp->m_pMainW…

【C++ 学习笔记】 MFC CEdit

环境&#xff1a;VS2008 -关联变量 方法一&#xff1a;在控件上右键-变量-CEdit类型变量-输入变量名。 方法二&#xff1a;添加代码 头文件中定义变量CEdit m_edit_fileName;源文件中变量关联DDX_Control(pDX, IDC_FILENAME, m_edit_fileName); -取得文本 取得CEdit中输入文本的…

java log4j 配置_Java:log4j与log4j.properties的配置说明

[来源&#xff1a;Java |作者&#xff1a;Java |时间&#xff1a;2007-7-20 |去论坛]--在强调可重用组件开发的今天&#xff0c;除了自己从头到尾开发一个可重用的日志操作类外&#xff0c;Apache为我们提供了一个强有力的日志操作包-Log4j。Log4j是Apache的一个开放源代码项目…

Linq(03)基础之Orderby group-by

说明&#xff1a;本内容来自微软的MSDN&#xff0c;好记性不如烂笔头&#xff0c;加深印象。 我的心得&#xff1a;开头 Let子句 1) 在查询表达式中&#xff0c;存储子表达式的结果有时很有用&#xff0c;这样可以在随后的子句中使用。 2) 该关键字可以创建一个新的…

linux-tar命令详解

转自&#xff1a;http://www.21andy.com/blog/20060820/389.html linux解压 tar命令 tar命令 tar [-cxtzjvfpPN] 文件与目录 .... 参数&#xff1a; -c &#xff1a;建立一个压缩文件的参数指令(create 的意思)&#xff1b; -x &#xff1a;解开一个压缩文件的参数指令&#xf…

java tcp端口复用_windows server tcp端口重用问题

我们的服务器端和客户端都是windows的Serverclient(192.168.1.11)发送socket连接到windows服务端&#xff0c;windows处理完数据返回报文后就close掉了(server端是java写的)。比如client使用12345端口发送数据到server的7777端口。client收到server的fin包后完成4次挥手后clien…

计算机视觉基础(11)——语义分割和实例分割

前言 在这节课&#xff0c;我们将学习语义分割和实例分割。在语义分割中&#xff0c;我们需要重点掌握语义分割的概念、常用数据集、评价指标&#xff08;IoU&#xff09;以及经典的语义分割方法&#xff08;Deeplab系列&#xff09;&#xff1b;在实例分割中&#xff0c;需要知…

使用vs2010+WCF发布json数据,ExtJS4.0进行调用

花了近一天的时间调试解决&#xff0c;希望对有相同需要的朋友有帮助&#xff1a;1、新建一空网站,添加一个web页面webform1.aspx&#xff0c;添加ExtJs相关引用<link href"ExtJs4.0.7/resources/css/ext-all.css"rel"stylesheet"type"text/css&qu…

mysql的 怎么处理_本人的MySQL连接到底怎么处理才好……

RT&#xff0c;代码本人直接贴了……using MySql.Data.MySqlClient;namespace WindowsFormsApplication1{public class ClassConnect{MySqlConnectionStringBuilder cs new MySqlConnectionStringBuilder();cs.Server “127.0.0.1”;cs.Port 3306;cs.Database “user_syste…

js解密

js解密http://www.cfansblog.com/tools/jsEncode.html转载于:https://www.cnblogs.com/skillCoding/archive/2012/02/03/2336700.html

java qq通信_结对博客(Java通信项目QQ)

项目名称&#xff1a;JAVA通信项目——QQ成员&#xff1a;邢正&#xff0c;郑振兰项目需求&#xff1a;QQ每个人都用过&#xff0c;它的意义就不再讲了。之所以选择做QQ事因为它有挑战性&#xff0c;涉及到通信、传输、swing等各种知识。(好吧我不装逼了&#xff0c;说的直白点…

类的序列化[Serializable]

简介序列化是指将对象实例的状态存储到存储媒体的过程。在此过程中&#xff0c;先将对象的公共字段和私有字段以及类的名称&#xff08;包括类所在的程序集&#xff09;转换为字节流&#xff0c;然后再把字节流写入数据流。在随后对对象进行反序列化时&#xff0c;将创建出与原…

java深度克隆大数据_Java - 深拷贝技巧

先让我描述一下问题&#xff1a;我在某Action(struts2.x)-A中写了一个功能P,以当前用户的某个标识F 1时需要走这个功能,而且这个功能因某些原因已经侵入到了其他一些method中。顺便一提,A中获得当前用户session的method已经被父类封装好了。然后我的代码已经push上去了,第二天…

Android中的Handler, Looper, MessageQueue和Thread

前几天&#xff0c;和同事探讨了一下Android中的消息机制&#xff0c;探究了消息的发送和接收过程以及与线程之间的关系。虽然我们经常使用这些基础的东西&#xff0c;但对于其内部原理的了解&#xff0c;能使我们更加容易、合理地架构系统&#xff0c;并避免一些低级错误。 对…