JavaScript DOM操作

操作DOM

DOM中节点类型
Document文档节点:代表整个网页,不代表任何HTML标记,但它是html的父节点
element元素节点:指任何HTML标记。每一个HTML标记就称一个“元素节点”。它可以有文本节点和属性节点。
attribute属性节点:指HTML标记的属性。
text节点:是节点树的最低节点。
核心DOM中的公共的属性和方法
提示:核心DOM中查找结点(标记),都是先从根节点开始的(html节点)。主要是针对于HTML4.0开发的。
HTML DOM的新特性
每一个HTML标记与元素对象的属性一一对应
核心DOM中的属性方法,元素对象都能用
HTML DOM访问HTML元素的方法(最常用)
getElementById("id名");
getElementByTagName("TagName名"); //标记,和核心DOM中nodeName一样
getElementByClass("class名");
CSS的DOM动态样式
**使用JS操作CSS中的各属性,JS只能操作修改行内样式。对于类样式,可以通过className来赋值。外联式无法操作**
**style样式代替css样式**
style对象属性与CSS属性的转换
1.如果是一个单词,则直接写
2.如果是多个单词,则第一个单词全小写,后面每个单词首字母大写,并去掉中划线。
DOM中Event对象

由于HTML文档被浏览器解析后就是一棵DOM树,要改变HTML的结构,就需要通过JavaScript来操作DOM。

始终记住DOM是一个树形结构。操作一个DOM节点实际上就是这么几个操作:

更新:更新该DOM节点的内容,相当于更新了该DOM节点表示的HTML的内容;

遍历:遍历该DOM节点下的子节点,以便进行进一步操作;

添加:在该DOM节点下新增一个子节点,相当于动态增加了一个HTML节点;

删除:将该节点从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不支持querySelector和querySelectorAll。IE8仅有限支持。

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

(0)

相关推荐

  • js中的DOM操作

    一.前言 DOM 是 W3C(World Wide Web Consortium)标准.同时也 定义了访问诸如 XML 和 HTML 文档的标准: DOM是一个使程序和脚本有能力动态地访问和更新文档的 ...

  • 使用JavaScript完成省市联动效果

    省市联动效果 技术分析 什么是DOM: Document Object Model : 管理我们的文档,增删改查规则 [HTML中的DOM操作] 一些常用的 HTML DOM 方法: getEleme ...

  • JavaScript基础-07-DOM

    JavaScript基础-07-DOM

  • javascript 关于dom节点操作的增删改查

    dom节点的增删改查 <!DOCTYPE html> <html lang="en"> <head> <meta charset=&quo ...

  • JavaScript之DOM操作

    DOM简介 是什么?    DOM,全称 Document Object Model,文档对象模型. 做什么?    dom 对象就是将标签封装成的 js 对象,而 JavaScript 中内置提供的 ...

  • Vue.js 获得兄弟元素,子元素,父元素(DOM操作)

    e.target 是你当前点击的元素 e.currentTarget 是你绑定事件的元素 e.currentTarget.previousElementSibling.innerHTML 获得点击元素 ...

  • JavaScript DOM初学笔记

    JavaScript DOM初学笔记

  • JavaScript DOM三种创建元素的方式

    三种创建元素的方式: document.write() element.innerHTML document.createElement() 初始HTML内容: <button>btn&l ...

  • 常见DOM操作

    文章目录 概述 DOM常用操作 事件 this的用法 创建节点 删除节点 概述 文档对象模型(Document Object Model,简称DOM),是W3C组织推荐的处理可扩展置标语言的标准编程接 ...

  • 如何用JavaScript去操作HTML元素和CSS样式

    第3章 你也有控制权(DOM操作) 如何用JavaScript去操作HTML元素和CSS样式,实现简单的动态操作. 3-1 认识DOM 3-2 通过ID获取元素 3-3 innerHTML 属性 3- ...

  • JavaScript DOM 鼠标拖拽

    在前端页面交互中,鼠标拖拽是一个体验良好的功能,实现鼠标拖拽需要了解鼠标行为坐标系和涉及到的许多兼容性写法.本文介绍鼠标位置的获取和.拽功能的实现以及拖拽函数的封装 鼠标行为坐标系 鼠标行为触发事件时 ...