当前位置:首页 > 日记 > 正文

JavaScript之DOM_动力节点Java学院整理

JavaScript之DOM_动力节点Java学院整理

由于HTML文档被浏览器解析后就是一棵DOM树,要改变HTML的结构,就需要通过JavaScript来操作DOM。
始终记住DOM是一个树形结构。操作一个DOM节点实际上就是这么几个操作:

  1. 更新:更新该DOM节点的内容,相当于更新了该DOM节点表示的HTML的内容;
  2. 遍历:遍历该DOM节点下的子节点,以便进行进一步操作;
  3. 添加:在该DOM节点下新增一个子节点,相当于动态增加了一个HTML节点;
  4. 删除:将该节点从HTML中删除,相当于删掉了该DOM节点的内容以及它包含的所有子节点。

在操作一个DOM节点前,我们需要通过各种方式先拿到这个DOM节点。最常用的方法是document.getElementById()document.getElementsByTagName(),以及CSS选择器document.getElementsByClassName()

由于ID在HTML文档中是唯一的,所以document.getElementById()可以直接定位唯一的一个DOM节点。

document.getElementsByTagName()document.getElementsByClassName()总是返回一组DOM节点。要精确地选择DOM,可以先定位父节点,再从父节点开始选择,以缩小范围。

例如:

// 返回ID为'test'的节点:var test = document.getElementById('test');// 先定位ID为'test-table'的节点,再返回其内部所有tr节点:var trs = document.getElementById('test-table').getElementsByTagName('tr');// 先定位ID为'test-div'的节点,再返回其内部所有class包含red的节点:var reds = document.getElementById('test-div').getElementsByClassName('red');// 获取节点test下的所有直属子节点:var cs = test.children;// 获取节点test下第一个、最后一个子节点:var first = test.firstElementChild;var last = test.lastElementChild;

第二种方法是使用querySelector()querySelectorAll(),需要了解selector语法,然后使用条件来获取节点,更加方便:

// 通过querySelector获取ID为q1的节点:var q1 = document.querySelector('#q1');// 通过querySelectorAll获取q1节点内的符合条件的所有节点:var ps = q1.querySelectorAll('div.highlighted > p');

注意:低版本的IE<8不支持querySelectorquerySelectorAll。IE8仅有限支持。

严格地讲,我们这里的DOM节点是指Element,但是DOM节点实际上是Node,在HTML中,Node包括ElementCommentCDATA_SECTION等很多种,以及根节点Document类型,但是,绝大多数时候我们只关心Element,也就是实际控制页面结构的Node,其他类型的Node忽略即可。根节点Document已经自动绑定为全局变量document

练习

如下的HTML结构:

JavaScript
Java
Python
Ruby
Swift
Scheme
Haskell

<!-- HTML结构 --><div id="test-div"><div class="c-red">  <p id="test-p">JavaScript</p>  <p>Java</p> </div> <div class="c-red c-green">  <p>Python</p>  <p>Ruby</p>  <p>Swift</p> </div> <div class="c-green">  <p>Scheme</p>  <p>Haskell</p> </div></div>

请选择出指定条件的节点:

// 选择<p>JavaScript</p>:var js = ???;// 选择<p>Python</p>,<p>Ruby</p>,<p>Swift</p>:var arr = ???;// 选择<p>Haskell</p>:var haskell = ???;

相关文章

Yii2.0中使用js异步删除示例

Yii2.0中使用js异步删除示例

删除,异步,示例,电脑软件,js,整理文档,搜刮出一个Yii2.0中使用js异步删除示例,稍微整理精简一下做下分享。控制器:public function actionWeixinnotificationdel(){ $model = WxDistributorNotification::findOne($_GET['id']); if ($model)…

Excel中2010进行自动填充数据的操

Excel中2010进行自动填充数据的操

自动填充,数据,操作技巧,操作步骤,电脑软件,  序列填充是Excel中提供的最常用的快速输入技术之一。在Excel中可以通过以下途径进行数据的自动填充。今天,小编就教大家在Excel中2010进行自动填充数据的操作技巧。Excel中2010进行自动填充数…

JS实现页面打印功能

JS实现页面打印功能

页面,功能,电脑软件,JS,打印整个页面示例1.可直接在按钮添加调用打印方法:<input type='button' value='打印整页' onclick='javascript:window.print();' />示例2.也可调用JS方法<html><head><script type="text/javascript">funct…

ES6解构赋值实例详解

ES6解构赋值实例详解

赋值,详解,实例,电脑软件,本文实例讲述了ES6解构赋值。分享给大家供大家参考,具体如下:基本用法let [x, y, ...z] = ['a']//"a", undefined, []1.等号右边如果不是数组,将会报错(不是可遍历结构)2.解构赋值 var, let, const命令声明均适用3.…

关于vue.js发布后路径引用的问题解

关于vue.js发布后路径引用的问题解

引用,路径,电脑软件,vue,js,本文主要给大家介绍了关于vue.js发布后路径引用问题的解决方法,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍:在发布到iis目录下时候,如果放在网站的根目录下的时候,是不会有什么问题的但是一旦放在了…

import与export在node.js中的使用

import与export在node.js中的使用

详解,电脑软件,export,import,js,简述import与export是es6中模块化的导入与导出,node.js现阶段不支持,需要通过babel进行编译,使其变成node.js的模块化代码。(关于node.js模块,可参考其他node.js模块化的文章)export 曝露使用export可以曝露出方…

ppt2010电脑版怎么安装动画大师

ppt2010电脑版怎么安装动画大师

动画,安装,步骤,大师,电脑软件,  为了方便我们在ppt中对动画的制作,我们可以在ppt中安装动画大师,那么,你知道怎样在ppt中安装动画大师吗?下面就让小编告诉你 如何在ppt中安装动画大师的方法,希望看完本教程的朋友都能学会并运用起来。在ppt…

在PPT2007中怎么对多个对象同时执

在PPT2007中怎么对多个对象同时执

对象,执行,多个,动作,中对,  在制作PPT演示文稿中,经常会需要对一张幻灯片中的多个对象同时执行一个动作,那么怎么在PPT2007中实现这一功能呢?以下是小编为您带来的关于在PPT2007中对多个对象同时执行一个动作,希望对您有所帮助。在PPT2007…

关于php 高并发解决的一点思路

关于php 高并发解决的一点思路

高并发,思路,电脑软件,php,我的思路如下(伪代码):sql1:查询商品库存if(库存数量 > 0){//生成订单...sql2:同时库存-1}当没有并发时,上面的流程看起来是再正常不过了,假设同时两个人下单,而库存只有1个了,在sql1阶段两个人查询到的库存都是>0的,于…

Javascript调试之console对象——

Javascript调试之console对象——

调试,对象,你不知道,小技巧,电脑软件,前言写过前端Javascript代码的同学肯定不会对console对象感到陌生,在调试的过程中我们经常会用console对象在控制台输出一些常量或者变量。但是相信很多人也就只用过console.log()这一个方法,今天我们就…

Excel怎样设置输入数据自动变成数

Excel怎样设置输入数据自动变成数

输入,设置,数据,方法,数值,  在Excel编辑的时候,在添加数据后自动变成了日期,怎么修改?在Excel中,可以通过设置禁止将数据转换为日期。接下来小编举例简单的例子告诉大家Excel如何设置输入数据自动变成数字。Excel设置输入数据自动变成数值…

excel表格的筛选教程

excel表格的筛选教程

教程,筛选,表格,电脑软件,excel,  Excel的筛选功能如何筛选数据呢?接下来是小编为大家带来的excel表格的筛选教程,供大家参考。excel表格的筛选教程:  筛选步骤1:比如我们建立有三列数据的Excel表来进行说明,分别是商品类别、商品名称和商…