属性

属性本身是一个对象(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);
  • 元素的标准属性

    • 有些 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);
            })
    • Element.setAttribute()

      • 为当前元素节点新增属性
      • 如果同名属性已存在,则相当于编辑已存在的属性
      • 没有返回值
    • Element.hasAttribute()

      • 当前元素节点是否包含指定属性
    • Element.hasAttributes()

      • 只要有一个属性,就返回 true
    • 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';
    • 删除一个 data-* 属性,可以直接使用 delete 命令

        • var ele = document.getElementById("myDiv");
          delete ele.dataset.foo;
    • data-属性名    命名有限制

      • 只能包含字母、数字、连词线(-)、点(.)、冒号(:)和下划线(_)
      • 属性名不应该使用 A 到 Z 的大写字母
      • 比如不能有 data-helloWorld 这样的属性名,而要写成 data-hello-world
    • data-属性名    使用要注意

      • 连词线后面如果跟着一个小写字母,那么连词线会被移除,该小写字母转为大写字母,其他字符不变
      • 反过来,dataset 的键名转成属性名时,所有大写字母都会被转成连词线+该字母的小写形式,其他字符不变。
      • 比如,dataset.helloWorld 会转成 data-hello-world

(89)Wangdao.com第二十二天_JavaScript 属性的更多相关文章

  1. (89)Wangdao.com第二十二天_JavaScript DocumentFragment 节点

    DocumentFragment 节点 代表一个文档的片段,本身就是一个完整的 DOM 树形结构. 它没有父节点,.parentNode 返回 null 可以插入任意数量的子节点. 不属于当前文档,操 ...

  2. (73)Wangdao.com第十二天_JavaScript consol 对象与控制台

    consol 对象 console对象是 JavaScript 的原生对象 它有点像 Unix 系统的标准输出stdout和标准错误stderr, 可以输出各种信息到控制台,并且还提供了很多有用的辅助 ...

  3. (72)Wangdao.com第十二天_JavaScript 错误处理机制

    1. Error 实例对象 JavaScript 解析或运行时,一旦发生错误,引擎就会抛出一个错误对象. JavaScript 原生提供Error构造函数,所有抛出的错误都是这个构造函数的实例. va ...

  4. javaSE第二十二天

    第二十二天    312 1:登录注册IO版本案例(掌握)    312 2:数据操作流(操作基本类型数据的流)(理解)    313 (1)定义:    313 (2)流对象名称    313 (3 ...

  5. Python第二十二天 stat模块 os.chmod方法 os.stat方法 pwd grp模块

    Python第二十二天   stat模块  os.chmod方法  os.stat方法  pwd  grp模块 stat模块描述了os.stat(filename)返回的文件属性列表中各值的意义,根据 ...

  6. 孤荷凌寒自学python第二十二天python类的继承

    孤荷凌寒自学python第二十二天python类的继承 (完整学习过程屏幕记录视频地址在文末,手写笔记在文末) python中定义的类可以继承自其它类,所谓继承的概念,我的理解 是,就是一个类B继承自 ...

  7. (90)Wangdao.com第二十三天_JavaScript CSS 操作

    CSS 操作 通过 JavaScript 操作 CSS HTML 元素的 style 属性 <div style="background-color:red; border:1px s ...

  8. 我和linux的第二十二天

    这几天学校的事情比较多,空闲时间也有,但没有利用起来.前些天听国学课,发觉自己心性还是不很成熟,以前自觉遇到君子应用君子的方法相处,遇到小人用小人的方法对待,老师一句话,疏清了自己.当我们用小人的方法 ...

  9. JQuery --- 第二期 (jQuery属性操作)

    个人学习笔记 1.JQuery的内容选择器 <!DOCTYPE html> <html lang="en"> <head> <meta c ...

随机推荐

  1. 如何解决Angular网页内嵌推特时间线无法正常显示

    我最近解决了一个折磨了我好久但是解决方法却只是添加两三行代码的问题.我没有在网上找到合适的解决方案,最后是我根据官方网站和很多的帖子里的部分代码得到的启发,尝试了很久之后得到的解决方法.因为过程实在是 ...

  2. 有关于 java native方法

    看java源码时,经常看到native方法后,就没有具体的是实现了. 以前一直有疑惑,今天查了查,看到前辈们的博文才明白: Java的native方法http://blog.csdn.net/wike ...

  3. Django REST Framework API Guide 06

    本节大纲 1.Validators 2.Authentication Validators 在REST框架中处理验证的大多数时间,您将仅仅依赖于缺省字段验证,或在序列化器或字段类上编写显式验证方法.但 ...

  4. 401AM 随笔~ 322~330 的总结

    web简介:html:超文本标记语言css:层叠样式表 或者css样式JavaScript:一门脚本语言前端:html css javascript<!---->:注释段落与文字p.b加粗 ...

  5. redux知识点

    1.关于传参 点击跳转 两种 动态路由 url 但是取值需要自己处理 关于动态跳转(js执行跳转) 关于异步加载组件 创建loadable app.js中 在 要加载的异步组件中   (这样接收参数不 ...

  6. 万维网WWW详解

    万维网WWW(World Wide Web)并非某种特殊的计算机网络,万维网是一个个大规模的.联机式的信息储藏所,英文简称Web. 万维网使用链接的方式能非常方便地从英特网上的一个站点访问到一个站点, ...

  7. JQuery EasyUI 初始

    基于jQuery的用户界面插件集合 1. jQuery easyui提供了一个完整的组件的集合,包括强大的DataGrid,树网格,面板.用户可以使用他们一起,或者只是用一些组件,组合和构建他想要的跨 ...

  8. fiddler主要图标说明

    主要图标含义说明: 正在将请求数据发往服务器 正在从服务器下载返回数据 请求过程中暂停 返回过程中暂停 请求中使用了HTTP HEAD方法; 返回中应该没有body内容 请求中使用了HTTP CONN ...

  9. Java的家庭记账本程序(L)

    日期:2019.3.13 博客期:044 星期三 整理了两天,我终于也是把微信小程序平台的记账本软件完全开发出来了,并将我的微信账号与GitHub账号完成了绑定,那么我就先展示一部分作品,还有一部分代 ...

  10. MySQL入门命令

    SQL(Structured Query Language) SQL是结构化查询语言,是一种用来操作RDBMS的数据库语言,当前关系型数据库都支持使用SQL语言进行操作,也就是说可以通过 SQL 操作 ...