【原创】01-1. 基于 checked 关于 attribute 和 property 的理解
- Attribute(属性) 和 Property(特性)
- Attribute(元素节点的属性),例如html中常用的class、title、align等(即:属性节点).而Property 是这个DOM元素作为对象的属性,例如 childNodes、firstChild等(即:特性):
通过 谷歌开发者工具 查看:
- 问题引入:

- 很多'attribute属性' 都有一个与之对应的 'property特性':即 "特性value" 和 "属性value" 是对应的,所以添加了value 特性 审查元素可以 看到的"value属性节点". (注意:‘class属性节点’对应的特性名 是:className,因为class 是 js 的保留字。)
- 需要注意的是:对于‘特性checked’(property)不是对应它 'checked属性'(attribute), 'checked属性' 实际对应的是‘特性defaultChecked';
类似的还有:<input type="text" value="" />中,value属性节点 对应的是:defaultValue,实际手动往输入框内输入的内容,是与 value特性 相对应的。
此时可以 显示出来了。defaultChecked 作用:设置复选框初始化的值,如下:
checked 对应的‘property(defaultChecked)’不会因为复选框的状态而改变,而checked 的‘property(checked)’才是与复选框的选中状态保持动态改变的。
所以在.attr()函数中,就算 属性节点 设置成了.attr("checked",true),也只是用来存储默认或者选中属性的 初始默认值,却并不改变该复选框被选中和选中。
这也就是为什么checkbox标签 已有 checked=checked属性节点, 却没显示勾选 的原因所在!!因为该属性节点的显示是由‘ property(defaultChecked)’决定的。而实际是否选中 状态是与 ‘property(checked)’有关。
<input type="checkbox"/> // JS 给 复选框 的“checked”属性 赋值,直接 xxx.checked=true; 或 $(element).prop("checked",ture); - 对于一个checkbox,若未定义checked="checked",alert($(element).attr("checked")) 的结果是undefined。若已定义则结果是checked。
- PS:在这里的getAttribute方法有一个潜规则,部分属性(input 的 value和checked)通过 getAttribut 始终取到的是初始值。
- ss
【原创】01-1. 基于 checked 关于 attribute 和 property 的理解的更多相关文章
- 2019/01/17 基于windows使用fabric将gitlab的文件远程同步到服务器(git)
觉得django项目把本地更新push到gitlab,再执行fabric脚本从gitlab更新服务器项目挺方便的,当然从本地直接到服务器就比较灵活. 2019/01/17 基于windows使用fab ...
- 【原创】打造基于Dapper的数据访问层
[原创]打造基于Dapper的数据访问层 前言 闲来无事,花几天功夫将之前项目里用到的一个数据访问层整理了出来.实现单个实体的增删改查,可执行存储过程,可输出返回参数,查询结果集可根据实际情况返回 ...
- javascript DOM 操作 attribute 和 property 的区别
javascript DOM 操作 attribute 和 property 的区别 在做 URLRedirector 扩展时,注意到在使用 jquery 操作 checkbox 是否勾选时,用 at ...
- JavaScript的attribute和property辨析
1.Attribute Attribute是HTML上设置的属性,在html中显式地设置,或者通过setAttribute()方法设置. <input type='text' id='txt' ...
- jQuery的attr与prop,attribute和property区别
jQuery1.6中新添加了一个prop方法,看起来和用起来都和attr方法一样,这两个方法有什么区别呢?这要从HTMl 的attribute与property区别说起,attr与prop正是这两个东 ...
- attribute和property兼容性分析
上一篇文章中,详细的分析了他们的区别,请看Javascript中的attribute和property分析 这次,来详细的看下他们的兼容性,这些内容主要来自于对于jQuery(1.9.x)源代码的分析 ...
- Javascript中的attribute和property分析
attribute和property这两个单词,都有属性的意思,attribute有属性.特质的意思,property则有性质,性能的意思. 首先需要明确的是,在规范中,读取和设置attribute的 ...
- boolean attribute(布尔值属性) attribute vs property
boolean attribute(布尔值属性) boolean attribute HTML - Why boolean attributes do not have boolean val ...
- HTML中的attribute和property
一.概述 attribute和property是常常被弄混的两个概念. 简单来说,property则是JS代码里访问的: document.getElementByTagName('my-elemen ...
随机推荐
- GIS与水文分析(1)GIS与水文学
GIS与水文分析(1)GIS与水文学 对于大部分GIS从业人员或者利用GIS作为研究方向的人员来说,水文学过于专业,更偏重于理论化,很难从GIS的角度来模拟和分析水文的过程.这其实是个普遍性的问题,任 ...
- thinkphp中find()和select()的区别
1.find()是查找符合条件的第一条数据,返回的是一个一维数组: select()是查找符合条件的所有的数据,返回的是一个二维数组: 2.以下案例 $tech=M('techlevel','HR_C ...
- Hadoop 笔记1 (原理和HDFS分布式搭建)
1. hadoop 是什么 以及解决的问题 (自行百度) 2.基本概念的讲解 1. NodeName master 节点(NN) 主节点 保存了metaData(元数据信息) 包括文件的owener ...
- TCP札记
协议对于通信就像算法对于计算一样.算法允许人们在不必知道特定的CPU指令集的情况下指定或理解具体的计算形式.同样地,通信协议允许人们不依赖特定厂家的网络硬件来指定或理解数据通信. 网络协议通常分不同层 ...
- C++ inline函数与编译器设置
1. 经过测试#define与inline的速度几乎没有区别. 2. inline函数更为安全,有效避免了#define二义性问题.inline是真正的函数,而#define只是在字符串意义上的宏替换 ...
- 【原】Sql Server 2008---安装时卸载Visual Studio
由于数据库连接不上,所以卸载数据库,然后安装的时候出问题报错,结果是因为vs, 所以就有了卸载vs这一步.某些图片借用一下. 1. 打开电脑中的控制面板--程序和功能 2.找到要卸载的软件,但是卸载过 ...
- 搭建ES6运行环境
当ES5还没有完全普及时,ES6就接踵而来了,2015年6月17日,ECMAScript 6发布正式版本,即ECMAScript 2015,我们也简称它为ES6或ES2015.在发布之后的将近一年内, ...
- python编程快速上手之第4章实践项目参考答案
#!/usr/bin/env python3.5 # coding:utf-8 # 假定有一个列表,编写函数以一个列表值作为参数,返回一个字条串 # 该字符串包含所有表项,之间以逗号和空格分隔,并在最 ...
- CSS 样式书写规范
可能不同团队都有各自的规范,又或者很多人在写 CSS 的时候还是想到什么就写什么,不存在太多的约束. 我觉得 CSS 代码规范还是有存在的必要的,尤其是在团队配合,多人协作下,规范就显得尤为重要. 本 ...
- PostGreSQL数据库安装教程
windows 10 x64 pro 1703安装postgresql-9.6.3-2-windows-x64.exe数据库,步骤如下: 第一:下载数据库安装程序,下载地址为:https://www. ...