浅谈DOM

作者: 孙静静 | 来源:发表于2017-10-09 22:16 被阅读13次

js是一门神奇的语言,才开始入门你可能觉得,学js难,难于上青山,但是这是一门温柔的语言,往后学久了,你会发现前行的路越来越容易,这就是今天讲DOM的意义,如果你还被各种循环和数组的结合折磨的死去活来,那么,DOM是你最好的解脱。
DOM可以从俩个方面来讲解,其一是它的对象,其二是属性,首先来谈谈对象。DOM的对象可分为“增删改查”;
增:

//创建一个新的节点:
var  a = document.createTextNode("hello world!");

或者

//创建一个新的节点:
var  a = document.createElement('div');

将创建的节点添加到html中,有两种方法

//将节点添加到指定地方(比如divs的子集中)
divs.appendChild(a);

注意:两个图添加的顺序都为

  1. innerHTML: 标签的内容,包含里面的子标签以及注释,还可以往里面加入标签的时候,可以解析加入的标签
  2. console.log(arguments) 参数列表,可以获取调用这个函数的时候,传过来的所有的参数,数组,
    如果调用过来的不传参数,形参为undefined

例如:


1.png ![ ![ ![DOM.png](https://img.haomeiwen.com/i7426638/834dd060d6edeea8.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240) ](https://img.haomeiwen.com/i7426638/322cce8b74c40d39.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240) ](https://img.haomeiwen.com/i7426638/15d295f98ba90eda.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

appendChild添加是在末尾添加,如果同时添加多个,则按顺序排列
还有一种是在之前添加

//作为子集依次添加,每次新添加的在上面
divs.insertBefore(a,divs.children[1]);

例如:

2.png

删:有两种方法
一.

divs.removeChild(a);

二.

a.remove();

改:用一个替换原来的某个,比如,用b替换上面的a;

// 首先创建一个b节点
var b = document.createELement('div');
// 替换
divs.replaceChild(b,a);

查:就是之前的获取元素的方法

1.document.getElementById('"id"名):根据元素的id名获取元素,只能获取到指定id名的单个元素;
2.document.getElementsByClassName('class名'):根据元素的class名获取元素,获取所有指定class名的元素,结果是一个集合,如果要从这个集合中获取某一个单个元素,可以用box_arr[ 0 ]这样的方法;
3.document.querySelector( ):找到符合选择元素的唯一条件,如果有很多符合条件的元素,只能找到第一个;
4.document.querySelectorAll( ):找到符合元素的所有元素,获取到的是一个集合
5.document.getElementsByName('name的属性值'):根据元素的name来获取元素,获取的是一个集合
6.document.getElementsByTagName('标签名'):根据标签名获取元素;

DOM对象说完了,来谈谈DOM属性吧。
刚接触js的时候,我想你们已经常用className,id,innerHTML,innerText,style几个属性,这里不再多介绍。
首先从两个方面介绍下今天所说的属性,大小(width,height) 和 位置(top,left)

//先创建一个class名为box的div
var box = document.createElement('div');
//先在css中写好.box的样式,这里使用className让box使用box的样式
box.className = "box";
//获取的是带边框的高度
var c = box.offsetHeight;
//获取的是可视高度(不包含滚动条和边框等)
var d = box.clientHeight;
//获取的是内容总高度
var e = box.scrollHeight;

width同理。

// 相对于定位父级的top值
console.log(redDiv.offsetTop);
// 上边框的距离
console.log(redDiv.clientTop);
// box滚动上去的那一部分,不能滚动的元素,scollTop一般为零
box.onclick = function(){
        console.log(box.scrollTop);
    }

left同理。
总结:

DOM.png

还有一种常见的属性

childNodes  :  所有子节点
children :  所有是标签类型的子节点
parentNode : 父节点
nextSibling  :  下一个兄弟节点
previousSibling :  上一个兄弟节点
firstChild  : 第一个子节点
lastChild  :   最后一个子节点

DOM暂时只介绍到这。

相关文章

  • DOM浅谈

    重点 1.DOM:Document Object Model文档对象模型 2.树形结构 下图中每个节点都是Node...

  • 浅谈DOM

    js是一门神奇的语言,才开始入门你可能觉得,学js难,难于上青山,但是这是一门温柔的语言,往后学久了,你会发现前行...

  • 浅谈DOM

    由于昨天面试问到的关于Dom的一些操作,自己并不能够灵活的运用,就打算总结一下常用的关于Dom的操作。 什么是DO...

  • 浅谈javascript DOM

    浅谈javascript DOM 一查找元素节点 1,通过id名获取 var obj=document.getEl...

  • ES6知识,js改动新功能,会了它你就方便很多

    浅谈ES6 JS组成 1、DOM 文档对象模型2、BOM 浏览器对象模型3、ecmascript ->ES j...

  • JavaScript—浅谈DOM操作

    1.理解DOM: DOM(Document Object Model ,文档对象模型)一种独立于语言,用于操...

  • 浅谈VUE虚拟dom

    Dom操作是比较浪费时间和性能的,当数据量很大时,更新DOM是非常耗费性能的操作。 当我们使用Javascript...

  • 浅谈DOM的事件绑定

    事件绑定的方式 给 DOM 元素绑定事件分为两大类:在 html 中直接绑定 和 在 JavaScript 中绑定...

  • 浅谈JQuery-DOM-事件

    一、说说库和框架的区别? 库 的概念和意义是用来提供一些方法的集合,避免定义重复功能的函数并具有一定的模式兼容性。...

  • JavaScript 之浅谈DOM操作

    1.理解DOM:DOM(Document Object Model ,文档对象模型)一种独立于语言,用于操作xml...

网友评论

本文标题:浅谈DOM

本文链接:https://www.haomeiwen.com/subject/stxmyxtx.html