第八天(DOM后记)

操作节点对象

增加

  • createElement(nodeName):创建节点对象

追加

  • node.appendChild(node):向节点的子节点末尾添加新的节点

    注意:如果添加的子节点再文档树中存在,它将从文档树中删除

  • node.insertBefore(node1,node2):在指点位置添加节点

    注意:是在已有的子节点前插入一个新节点,node1节点添加在node2节点的前面

删除

  • node.remove():删除节点本身
  • node.removeChild(node):删除节点下面的一个子节点,不包括本身

克隆

  • node.cloneNode(bool):克隆节点对象

    深度克隆:参数为true,会拷贝它本身节点和所有子孙节点;

    浅度克隆:参数为false,只拷贝它本身,不包括子孙节点;

    注意:克隆会拷贝节点的所有属性和方法,包括行内节点事件,但不包括js动态绑定事件。

cssDOM的使用

  • js 设置样式,操作的都是行内样式

  • js 中设置css样式,第二个单词的首字母大写,采用小驼峰命名法

  • 非行内样式获取

    注意:非行内样式只能读取不能设置

  • currentStyle:针对IE游览器获取非行内样式

  • getComputedStyle(node,[伪类]):针对非IE游览器获取非行内样式(第2个参数也可以为空)

  • 兼容性代码实现:

/* 获取非行内样式,直接使用这种方法*/
function getStyle(obj, attr) { //获取非行间样式,obj是对象,attr是值
    if (obj.currentStyle) {  //针对ie获取非行间样式
        return obj.currentStyle[attr];
    } else {
        return getComputedStyle(obj, null)[attr];   //针对非ie
    };
};

元素尺寸

  • offsetParent:获取有定位的父级元素(不包括static定位的元素),都没有则返回body

  • offsetTop:获取元素上边框到最近定位父元素上边框的像素距离

  • offsetLeft:获取元素左边框到最近定位父元素左边框的像素距离

  • offsetWidth / offsetHeight:元素实际宽高(宽高+内边距+边框)

  • clientWidth / clientHeight:元素视窗宽高(宽高+内边距)

对象拷贝

  • 深拷贝(两个对象之间没有任何关系)

    • 方法1:对象的assign()方法

      Object.assign(obj1,obj2)
      

      查看更多Object方法的使用

    • 方法2:使用forEach遍历

      for (var attr in obj1) {
           obj2[attr] = obj1[attr]
      }
      
    • 方法3:转化为json字符,在转为对象

      var str1 = JSON.stringify(obj1);
      obj2 = JSON.parse(str1);
      
  • 浅拷贝(指针的复制,操作的还是同一个对象)

表单属性

  • value:text表单的值

  • type:读写input标签的类型

  • disabled:是否禁用属性

  • checked:复选和单选框的选中属性

  • selected:下拉菜单的选中属性

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1.节点操作:(通过父子系关系) childNodes 获取当前元素的所有子节点; nodeType 节点种...
    蜉蝣_fe74阅读 406评论 0 0
  • 1. javascript的typeof返回哪些数据类型. 答案:string,boolean,number,un...
    梦里梦不到的梦_b5c8阅读 711评论 0 0
  • 整理下我在面试的时候所遇到的一些问题,想到哪里就更新到哪里.(ps:不定期更新~) Q1.请说出css选择器ul>...
    Snowxin阅读 766评论 0 6
  • 第一部分 HTML&CSS整理答案 1. 什么是HTML5? 答:HTML5是最新的HTML标准。 注意:讲述HT...
    kismetajun阅读 27,881评论 1 45
  • jquery介绍 jQuery是目前使用最广泛的javascript函数库 据统计,全世界排名前100万的网站,有...
    就是这么帅_567e阅读 1,246评论 0 0