(89)Wangdao.com第二十二天_JavaScript 属性
属性
属性本身是一个对象(Attr 对象)
- Element.attributes
- 返回一个类似数组的动态对象,成员是该元素标签的所有属性节点对象
- 属性的实时变化都会反映在这个节点对象上。
- 其他类型的节点对象,虽然也有 attributes 属性,但返回的都是 null,因此可以把这个属性视为元素对象独有的
- 取出每个属性节点对象(不是取属性值)
- 属性节点对象有 name 和 value 属性,对应该属性的属性名和属性值,等同于 nodeName 属性和 nodeValue 属性
// <div id="result" bgcolor="yellow">孙悟空</div> var ele = document.getElementById("result");
ele.innerHTML = ( ele.attributes[0].name+"----"+
ele.attributes[0].value+"<br />"+
ele.attributes[1].name+"----"+
ele.attributes[1].value);
- 属性节点对象有 name 和 value 属性,对应该属性的属性名和属性值,等同于 nodeName 属性和 nodeValue 属性
- 元素的标准属性
- 有些 HTML 属性名是 JavaScript 的保留字,
- 在JavaScript 中使用这些属性时,必须改名
- for 属性在使用时为 ele.htmlFor
- class 属性在使用时为 ele.className
- 属性操作的标准方法
适用所有属性
只会返回字符串
只接受标准名称,即 class 就是 "class",for 属性也可以直接使用
- Element.getAttribute()
- 返回一个数组,成员是当前元素的所有属性的名字
- 遍历某个节点的所有属性
- 方法1
var ele = document.getElementById("result");
var attrs = ele.attributes; ele.innerHTML += "<br />";
var i = 0;
for(i=0; i<attrs.length; i++){
ele.innerHTML += attrs[i].name+"----"+attrs[i].value+"<br />";
}
- 方法2
var mydiv = document.getElementById('mydiv'); mydiv.getAttributeNames().forEach(function (key) {
var value = mydiv.getAttribute(key);
console.log(key, value);
})
- 方法1
- Element.getAttribute()
- Element.setAttribute()
- 为当前元素节点新增属性
- 如果同名属性已存在,则相当于编辑已存在的属性
- 没有返回值
- Element.setAttribute()
- Element.hasAttribute()
- 当前元素节点是否包含指定属性
- Element.hasAttribute()
- Element.hasAttributes()
- 只要有一个属性,就返回 true
- Element.hasAttributes()
- Element.removeAttribute()
- 移除指定属性
- 没有返回值
- Element.removeAttribute()
- 标准提供的 data-xxx 属性 自定义属性
- 元素节点对象的 dataset 属性
- 通过 ele.dataset.foo 读写 data-foo 属性
// <div id="mydiv" data-foo="bar"> var n = document.getElementById('mydiv');
n.dataset.foo; // 返回 bar
n.dataset.foo = 'kjf';
- 通过 ele.dataset.foo 读写 data-foo 属性
- 元素节点对象的 dataset 属性
- 删除一个 data-* 属性,可以直接使用 delete 命令
var ele = document.getElementById("myDiv");
delete ele.dataset.foo;
- 删除一个 data-* 属性,可以直接使用 delete 命令
- data-属性名 命名有限制
- 只能包含字母、数字、连词线(-)、点(.)、冒号(:)和下划线(_)
- 属性名不应该使用 A 到 Z 的大写字母
- 比如不能有 data-helloWorld 这样的属性名,而要写成 data-hello-world
- data-属性名 命名有限制
- data-属性名 使用要注意
- 连词线后面如果跟着一个小写字母,那么连词线会被移除,该小写字母转为大写字母,其他字符不变
- 反过来,dataset 的键名转成属性名时,所有大写字母都会被转成连词线+该字母的小写形式,其他字符不变。
- 比如,dataset.helloWorld 会转成 data-hello-world
- data-属性名 使用要注意
(89)Wangdao.com第二十二天_JavaScript 属性的更多相关文章
- (89)Wangdao.com第二十二天_JavaScript DocumentFragment 节点
DocumentFragment 节点 代表一个文档的片段,本身就是一个完整的 DOM 树形结构. 它没有父节点,.parentNode 返回 null 可以插入任意数量的子节点. 不属于当前文档,操 ...
- (73)Wangdao.com第十二天_JavaScript consol 对象与控制台
consol 对象 console对象是 JavaScript 的原生对象 它有点像 Unix 系统的标准输出stdout和标准错误stderr, 可以输出各种信息到控制台,并且还提供了很多有用的辅助 ...
- (72)Wangdao.com第十二天_JavaScript 错误处理机制
1. Error 实例对象 JavaScript 解析或运行时,一旦发生错误,引擎就会抛出一个错误对象. JavaScript 原生提供Error构造函数,所有抛出的错误都是这个构造函数的实例. va ...
- javaSE第二十二天
第二十二天 312 1:登录注册IO版本案例(掌握) 312 2:数据操作流(操作基本类型数据的流)(理解) 313 (1)定义: 313 (2)流对象名称 313 (3 ...
- Python第二十二天 stat模块 os.chmod方法 os.stat方法 pwd grp模块
Python第二十二天 stat模块 os.chmod方法 os.stat方法 pwd grp模块 stat模块描述了os.stat(filename)返回的文件属性列表中各值的意义,根据 ...
- 孤荷凌寒自学python第二十二天python类的继承
孤荷凌寒自学python第二十二天python类的继承 (完整学习过程屏幕记录视频地址在文末,手写笔记在文末) python中定义的类可以继承自其它类,所谓继承的概念,我的理解 是,就是一个类B继承自 ...
- (90)Wangdao.com第二十三天_JavaScript CSS 操作
CSS 操作 通过 JavaScript 操作 CSS HTML 元素的 style 属性 <div style="background-color:red; border:1px s ...
- 我和linux的第二十二天
这几天学校的事情比较多,空闲时间也有,但没有利用起来.前些天听国学课,发觉自己心性还是不很成熟,以前自觉遇到君子应用君子的方法相处,遇到小人用小人的方法对待,老师一句话,疏清了自己.当我们用小人的方法 ...
- JQuery --- 第二期 (jQuery属性操作)
个人学习笔记 1.JQuery的内容选择器 <!DOCTYPE html> <html lang="en"> <head> <meta c ...
随机推荐
- HDU 5965(三行扫雷 dp)
题意是在一个 3 行 n 列的图上进行扫雷,中间一行没有雷,且中间一行的每一格都会显示周围的雷数,问根据已知的雷数在上下两行设置地雷的方法数. 分析知每一列所填雷数的和与周围的雷数有关,但每列具体的填 ...
- 数据结构Java实现03----栈:顺序栈和链式堆栈
一.堆栈的基本概念: 堆栈(也简称作栈)是一种特殊的线性表,堆栈的数据元素以及数据元素间的逻辑关系和线性表完全相同,其差别是线性表允许在任意位置进行插入和删除操作,而堆栈只允许在固定一端进行插入和删除 ...
- CSRF篇-本着就了解安全本质的想法,尽可能的用通俗易懂的语言去解释安全漏洞问题
0x01 Brief Description csrf 跨站伪造请求,请求伪造的一种,是由客户端即用户浏览器发起的一种伪造攻击.攻击的本质是请求可以被预测的到. 在了解csrf攻击之前,需要了解浏览器 ...
- Educational Codeforces Round 33 (Rated for Div. 2) E. Counting Arrays
题目链接 题意:给你两个数x,yx,yx,y,让你构造一些长为yyy的数列,让这个数列的累乘为xxx,输出方案数. 思路:考虑对xxx进行质因数分解,设某个质因子PiP_iPi的的幂为kkk,则这个 ...
- ZOC7在Mac下发送命令到多个窗口设置
1 详见截图,找了半天 2 然后,下边框就会出现命令发送多个窗口的输入框了
- gzip 压缩
nginx 开启静态 gzip 配合 Vue 构建 在站点配置添加如下代码: location ~* \.(css|js)$ { gzip_static on; } 这是 nginx 的静态 gz ...
- mysql之concat concat_ws group_concat
concat.concat_ws.group_concat都可以用来连接字符串. concat和concat_ws用来连接同一行中不同列的数据,group_ws用来连接同一列的数据. 格式如下: co ...
- html(jQuery)替换字符串(全部替换)
var str= "a<br/>b<br/>c<br/>"; var Newstr = str.replace("<br/&g ...
- ASP .NET Core HTTP Error 502.5 – Process Failure
页面返回错误 事件日志显示错误 大家可以先看着个链接 https://docs.microsoft.com/en-us/aspnet/core/publishing/iis?tabs=aspnetco ...
- C++设计模式——状态模式
前言 在实际开发中,我们经常会遇到这种情况:一个对象有多种状态,在每一个状态下,都会有不同的行为.那么在代码中我们经常是这样实现的. typedef enum tagState { state, st ...