DOM解读
DOM解读
DOM概念 - document object model:文档对象模型
操作文档的一套方法,document是一个对象,是dom的顶级对象,属于window的一个对象,并且可以说是最出色的一个儿子。
DOM元素的获取:
document.getElementById("id名字") //根据ID名字来获取标签;
document.getElementByTagName("标签名") //根据标签名来获取;
document.getElementByClassName("类名") //根据类名来获取;
document.getElementByName("name的属性值") //根据name属性来获取;
document.querySelector(css选择器) //根据CSS选择器来获取;
document.querySelectorAll(css选择器) //根据CSS选择器来获取所有满足条件的元素;
//3、5、6在IE中不兼容
DOM元素的操作:
内容操作:
元素.innerText //文本内容操作;
元素.innerHTML //带标签的内容操作;
元素.value //表单元素的内容操作(input类型)
元素.outText //包含自身的标签;
元素.outHTML //包含自身的标签;
属性操作:
元素.getAttribute("属性名") //获取属性的值,只能获取不能修改
元素.setAttribute("属性名","属性值") //修改属性的值,相当于重新设置
元素.removeAttribute("属性名") //删除属性
//也可以直接通过"."来操作 元素.属性 = ""; //(通常不在标签上显示)
类名、样式操作:
元素.style.css(属性名) = "值";//设置样式;
元素.className = "值"; //设置class类名;
元素.className = ""; //清空class类名;
DOM节点:
概念:组成HTML页面的所有内容,都叫做节点;
组成: //(元素、文本、注释、属性等节点)
元素节点:(主要介绍)
元素节点的获取:
元素.children //获取所有的子元素;
元素.firstElementChild //获取第一个子元素;
元素.lastElementChild //获取最后一个子元素;
元素.previousElementSibling //获取上一个兄弟元素;
元素.nextElementSibling //获取下一个兄弟元素;
元素.parentElement //获取父元素;
元素节点的操作:
var td = document.createElement('td'); //创建标签节点
插入节点:
父元素.appendChild(子元素) //在父元素最后追加;
父元素.insertBefore(新元素,旧元素) //将新的元素插入到指定的子元素前面;
删除节点:父元素.remove(子元素);
复制节点:父元素.cloneNode(true);
//有true就会连标签里面的内容也复制出来,没有true只会复制空标签;
替换节点:父元素.replaceChild(新元素,旧元素) //使用新的子元素替换掉旧的元素;
获取元素节点的样式:
window.getComputedStyle(元素)
元素.currentStyle (IE兼容)
封装之后:
function getStyle(ele,attr){
if(window.getComputedStyle){
return window.getComputedStyle(ele)[attr]
}else{
return ele.currentStyle[attr]
}
}
var div = document.getElementsByTagName("div")[0];
var w = getStyle(div,"width");
console.log(w);
获取元素位置:
元素.offsetLeft 元素.offsetTop //这个就是于offsetParent的距离
元素.offsetParent //获取到定位是参考的那个设置过定位的父元素;
获取节点:
元素.childNodes //获取所有子节点;
元素.parentNode //获取父节点;
元素.firstChild //获取第一个子节点;
元素.lastChild //获取最后一个子节点;
元素.previousSibling //获取上一个兄弟节点;
元素.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标签
DOM解读的更多相关文章
- Jsoup代码解读之二-DOM相关对象
Jsoup代码解读之二-DOM相关对象 之前在文章中说到,Jsoup使用了一套自己的DOM对象体系,和Java XML API互不兼容.这样做的好处是从XML的API里解脱出来,使得代码精炼了很多 ...
- 2014年辛星解读Javascript之DOM之冒泡和捕获
上篇博客提到了Javascript事件绑定函数的三个參数.第一个是一个event.第二个是一个function.第三个是一个布尔变量.它用于指定事件传递的顺序,分为冒泡和捕获两种方式,接下来我们将揭开 ...
- 2014年辛星解读Javascript之用DOM动态操纵HTML元�
关于DOM,我们了解了能够用DOM操纵HTML的一些属性和样式,还能够为HTML元素绑定事件等等,那么接下来,我们将涉及到用DOM来动态的创建.删除HTML等一些操作,我的核心思路还是重实战,因此,代 ...
- 解密虚拟 DOM——snabbdom 核心源码解读
本文源码地址:https://github.com/zhongdeming428/snabbdom 对很多人而言,虚拟 DOM 都是一个很高大上而且远不可及的专有名词,以前我也这么认为,后来在学习 V ...
- 2014年辛星解读Javascript之DOM之事件及其绑定
我们通过DOM的事件能够对HTML的事件作出反应.就像我们用其它编程语言写GUI一样,那么HTML包含哪些事件呢?以下是几个常见的样例,比方网页已经完毕记载,图像完毕载入,鼠标移动到元素上方.输入文字 ...
- React 16 源码瞎几把解读 【三 点 一】 把react组件对象弄到dom中去(矛头指向fiber,fiber不解读这个过程也不知道)
一.ReactDOM.render 都干啥了 我们在写react的时候,最后一步肯定是 ReactDOM.render( <div> <Home name="home&qu ...
- 2014年辛星解读Javascript之DOM高速入门
在Javascript的知识中,有一个所谓的DOM.即文档对象模型,我们能够通过它来訪问HTML文档的元素,当网页被载入的时候,浏览器会去创建DOM,有了这个DOM.我们能够使用Javascript去 ...
- React 16 源码瞎几把解读 【一】 从jsx到一个react 虚拟dom对象
一.jsx变createElement 每一个用jsx语法书写的react组件最后都会变成 react.createElement(...)这一坨东西, // 转变前 export default ( ...
- 从DOM操作看Vue&React的前端组件化,顺带补齐React的demo
前言 接上文:谈谈我对前端组件化中“组件”的理解,顺带写个Vue与React的demo 上次写完博客后,有朋友反应第一内容有点深,看着迷迷糊糊:第二是感觉没什么使用场景,太过业务化,还不如直接写Vue ...
随机推荐
- UFT场景恢复
场景恢复: 在脚本运行中可能会出现一些非预期事件.错误.程序崩溃等情况,阻止脚本继续执行下去,在此情况下脚本可能暂停执行, 直到某些界面被操作之后才会继续执行下去,为了处理这一类事件因此存在场景恢复. ...
- linux系统开机静态分配ip地址
在/etc/sysconfig/network-scripts/ifcfg-eth0文件中 添加: IPADDR=192.168.1.100(设置静态地址) NETMASK=255.255.255.0 ...
- 吴裕雄--天生自然python学习笔记:Python MongoDB
MongoDB 是目前最流行的 NoSQL 数据库之一,使用的数据类型 BSON(类似 JSON). PyMongo Python 要连接 MongoDB 需要 MongoDB 驱动,这里我们使用 P ...
- Web前端性能
6.1前端性能示例 性能测试工具: Apache Benchmark(ab)得到的响应时间仅为从请求发出开始到接收到HTML的最后一个字节所消耗的全部时间.ab命令行如下: ab -c [并发用户数] ...
- ionic2踩坑之自定义插件开发及调用
关于ionic2自定义插件开发的文章,插件怎么调用的文章,好像网上都有,不过作为一个新手来说,从插件的开发到某个页面怎么调用,没有一个完整的过程的话,两篇没有关联的文章也容易看的迷糊.这里放到一起来方 ...
- 【GBK、UTF-8、ISO8859-1】三种编码方式总结及实例
感谢:https://blog.csdn.net/youngstar70/article/details/64117297 一.总结 在Java中,String的getBytes()方法是得到一个操作 ...
- estt
1.路由控制的定义 1.1.IP地址与路由控制 互联网是由路由器连接的网络组合而成的.为了能让数据包正确地到达目标主机,路由器必须在途中进行正确地转发.这种向"正确的方法"转发数据 ...
- win7图片只显示图标不显示预览图解决方案
问题描述: win7上图片只显示图标,不显示缩略图:不管是调节小图.中图还是大图或者其他均不显示:而且这种情况下使用截图工具截下来的图片都不自动带上扩展名:情况如下图: 解决方案: 打开计算机-> ...
- ant:如何用ant将web project打包成war包
说明:src中的文件将不会呈现出来,诸位可以自己写一个简单的web项目,然后依照我所提供的ant脚本配置来设置. 文件结构如图所示: 配置为下: build.xml < ...
- hexo创建新文章的正确方法
起因 之前我一直是通过复制以前的文章的形式来创建一个新的文档,但是这一次似乎遇到了一些问题.我将文章写完之后,准备进行预览,输入hexo s命令.在预览页面却没有显示出新的文章,还是和之前的页面是一样 ...