DOM解读

DOM概念 - document object model:文档对象模型

操作文档的一套方法,document是一个对象,是dom的顶级对象,属于window的一个对象,并且可以说是最出色的一个儿子。

DOM元素的获取:

  1. document.getElementById("id名字") //根据ID名字来获取标签;

  2. document.getElementByTagName("标签名") //根据标签名来获取;

  3. document.getElementByClassName("类名") //根据类名来获取;

  4. document.getElementByName("name的属性值") //根据name属性来获取;

  5. document.querySelector(css选择器) //根据CSS选择器来获取;

  6. document.querySelectorAll(css选择器) //根据CSS选择器来获取所有满足条件的元素;

    //3、5、6在IE中不兼容

DOM元素的操作:

内容操作:

  1. 元素.innerText //文本内容操作;

  2. 元素.innerHTML //带标签的内容操作;

  3. 元素.value //表单元素的内容操作(input类型)

  4. 元素.outText //包含自身的标签;

  5. 元素.outHTML //包含自身的标签;

属性操作:

  1. 元素.getAttribute("属性名") //获取属性的值,只能获取不能修改

  2. 元素.setAttribute("属性名","属性值") //修改属性的值,相当于重新设置

  3. 元素.removeAttribute("属性名") //删除属性

    //也可以直接通过"."来操作 元素.属性 = ""; //(通常不在标签上显示)

类名、样式操作:

  1. 元素.style.css(属性名) = "值";//设置样式;

  2. 元素.className = "值"; //设置class类名;

  3. 元素.className = ""; //清空class类名;

DOM节点:

概念:组成HTML页面的所有内容,都叫做节点;

组成: //(元素、文本、注释、属性等节点)

元素节点:(主要介绍)

元素节点的获取:

  1. 元素.children //获取所有的子元素;

  2. 元素.firstElementChild //获取第一个子元素;

  3. 元素.lastElementChild //获取最后一个子元素;

  4. 元素.previousElementSibling //获取上一个兄弟元素;

  5. 元素.nextElementSibling //获取下一个兄弟元素;

  6. 元素.parentElement //获取父元素;

元素节点的操作:

var td = document.createElement('td'); //创建标签节点

插入节点:

父元素.appendChild(子元素) //在父元素最后追加;

父元素.insertBefore(新元素,旧元素) //将新的元素插入到指定的子元素前面;

删除节点:父元素.remove(子元素);

复制节点:父元素.cloneNode(true);

//有true就会连标签里面的内容也复制出来,没有true只会复制空标签;

替换节点:父元素.replaceChild(新元素,旧元素) //使用新的子元素替换掉旧的元素;

获取元素节点的样式:

window.getComputedStyle(元素)

元素.currentStyle (IE兼容)

封装之后:

  1. function getStyle(ele,attr){

  2. if(window.getComputedStyle){

  3. return window.getComputedStyle(ele)[attr]

  4. }else{

  5. return ele.currentStyle[attr]

  6. }

  7. }

  8. var div = document.getElementsByTagName("div")[0];

  9. var w = getStyle(div,"width");

  10. console.log(w);

获取元素位置:

元素.offsetLeft 元素.offsetTop //这个就是于offsetParent的距离

元素.offsetParent //获取到定位是参考的那个设置过定位的父元素;

获取节点:

  1. 元素.childNodes //获取所有子节点;

  2. 元素.parentNode //获取父节点;

  3. 元素.firstChild //获取第一个子节点;

  4. 元素.lastChild //获取最后一个子节点;

  5. 元素.previousSibling //获取上一个兄弟节点;

  6. 元素.nextSibling //获取下一个兄弟节点;

节点属性:

节点属性 nodeType节点类型 元素节点1 文本节点3 注释节点8

nodeName节点名称 ​ 元素节点大写的标签名 ​ 文本节点#text ​ 注释节点#comment

nodeValue节点的值 ​ 元素节点null ​ 文本节点文本内容 ​ 注释节点注释的内容

获取/设置滚动过的距离

有文档声明的时候 ​ document.documentElement.scrollTop ​ document.documentElement.scrollLeft ​ 没有文档声明的时候 ​ document.body.scrollTop ​ document.body.scrollLeft

//做一个回到顶部的效果

获取浏览器大小

document.documentElement.clientWidth ​ document.documentElement.clientHeight ​ //不包含滚动条的尺寸

获取html基本结构

document.documentElement是html标签 ​ document.bodybody标签 ​ document.headhead标签 ​ document.titletitle标签

最新文章

  1. Python-13-堡垒机开发
  2. *HDU3367 最小生成树
  3. asp.net js获取控件ID
  4. SQLServer------如何删除列为NULL的行
  5. PHP isset 函数作用
  6. redis实现主从复制-单机测试
  7. Linux 图形化操作
  8. android 单例模式
  9. 上门洗车App 竟然是块大肥肉!
  10. mysql中查看字符集的cmd指令
  11. ReactiveCocoa 设置绑定注意事项
  12. Weka算法介绍
  13. MAC 相关操作解析
  14. Linux 学习笔记_12_文件共享服务_4_SSH
  15. [LeetCode] Goat Latin 山羊拉丁文
  16. nvidia-smi 实时查看
  17. EVE-NG简单入门介绍
  18. LINUX文件内容处理及文本编辑器vim
  19. 各种浏览器下的页面元素xpath获取方法
  20. 小程序使用 rpx 单位 转 px的方法(用于动画、canvas画图)

热门文章

  1. 调参、最优化、ml算法(未完成)
  2. Google DevTools Explanation
  3. python3下scrapy爬虫(第十卷:scrapy数据存储进mysql)
  4. 安装与使用django-restframework
  5. Angular开发者指南(五)服务
  6. Java使用JNDI技术获取DataSource对象
  7. 转载-MAC Mysql中文乱码解决方法
  8. iOS(Swift)学习笔记之SwiftyJSON的使用
  9. Hadoop的存储架构介绍
  10. 谈谈从事IT测试行业的我,对于买房买车有什么样的感受