关于Dom元素的属性(property)和特性(attribute)
2016-05-28 05:52
507 查看
关于这两个的问题一直是前端程序员的困惑,前几天看了一下网上的资料,前天恰好看了jquery作者的讲解,我的理解是属性是类似于js对象里的属性,可以随便写一个,特性是html里固有的变量,比如id和class等。下面说一下测试发现的结果。
假设element变量代表一个dom元素。
通过setAttribute("xxx",1)和element.xxx=1的形式设置值的时候,
1.如果xxx是代表特性的变量,比如id和class,那么不管用哪种方法设置,都会互相影响,也就是说设置后,通过element.xxx和getAttibute("xxx")的时候,返回的结果是一样的。
2.如果xxx代表的不是特性的值,那么值就不会同步,比如element.hello="world"时,通过getAttibute方法获取的时候会返回null,并且不会出现在html代码里,通过打开F12查看elementsTab里的代码发现没有变化。同样地,通过setAttibute方法设置的值。用element.xxx的形式也不会返回值,只会返回undefined。但是新加的键和值会出现在html代码里。
例外顺便说一下的是有些html的特性以element.xxx的形式赋值或者取值时需要做相应的变化,如果class要写成className,for写成htmlFor,readonly要写成readOnly等。
假设element变量代表一个dom元素。
通过setAttribute("xxx",1)和element.xxx=1的形式设置值的时候,
1.如果xxx是代表特性的变量,比如id和class,那么不管用哪种方法设置,都会互相影响,也就是说设置后,通过element.xxx和getAttibute("xxx")的时候,返回的结果是一样的。
2.如果xxx代表的不是特性的值,那么值就不会同步,比如element.hello="world"时,通过getAttibute方法获取的时候会返回null,并且不会出现在html代码里,通过打开F12查看elementsTab里的代码发现没有变化。同样地,通过setAttibute方法设置的值。用element.xxx的形式也不会返回值,只会返回undefined。但是新加的键和值会出现在html代码里。
例外顺便说一下的是有些html的特性以element.xxx的形式赋值或者取值时需要做相应的变化,如果class要写成className,for写成htmlFor,readonly要写成readOnly等。
相关文章推荐
- linux下jdk安装以及Eclipse安装详细说明
- Linux后门初探二(利用 /etc/inetd.conf)
- 广州码神信息科技有限公司--培训第一周
- linux 安装apache 错误:configure: error: /bin/sh build/config.sub failed解决办法
- window下搭建nginx服务器
- linux下使用openssl的对称密码体制对文本和文件加密
- centos 编译安装PHP7
- Linux常用命令
- tomcat下server.xml配置详解
- opencv2学习- - - 像素操作
- [原]Openstack之identity server(keystone)
- Dubbo原理解析-监控
- Dubbo原理解析-监控
- opencv调整图像亮度和对比度
- 基于 Linux 的智能手机 Librem 5 开启预售
- Linux下常见的服务的端口
- arm linux挂载nfs根文件系统
- 编译ARM Linux GCC工具链
- Linux启动参数
- 编译linux 下面的 mplayer for arm记录