Js之浅谈dom操作

JavaScript之浅谈dom操作

1.理解dom:

  DOM(Document Object Model ,文档对象模型)一种独立于语言,用于操作xml,html文档的应用编程接口。

  怎么说,我从两个角度理解:

  • 对于JavaScript,为了能够使JavaScript操作Html,JavaScript就有了一套自己的dom编程接口。
  • 对于Html,dom使得html形成一棵dom树,类似于一颗家族树一样,一层接一层,子子孙孙。

  所以说,有了DOM,在我看来就是相当于JavaScript拿到了钥匙一样可以去操作Html的每一个节点,触摸Html每寸肌肤。(咳。。。)

2.介绍Html的dom树:

说明:html标签通过浏览器的解析后才会形成dom树,此后HTML中的每个标签元素,属性,文本都能看做是一个dom的节点,JavaScript都能通过dom的提供的编程接口操作到每个节点,去了解浏览器的渲染机制能够帮助我们了解dom。

Html代码:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>dom</title>
</head>
<body>
    <div>
        <a href="www.baidu.com">百度</a>
    </div>
</body>
</html>

对应的dom树结构图:

3.认识JavaScript中的dom编程接口:

上面说了html形成的dom树,接着说下通过js的dom编程接口去操作这棵dom树。

JavaScriptDOM操作的常用方法和属性::

  • 常用方法:
  1. 获取节点:
    1. document.getElementById(idName)          //通过id号来获取元素,返回一个元素对象
    2. document.getElementsByName(name)       //通过name属性获取id号,返回元素对象数组
    3. document.getElementsByClassName(className)   //通过class来获取元素,返回元素对象数组(ie8以上才有)
    4. document.getElementsByTagName(tagName)       //通过标签名获取元素,返回元素对象数组
  2. 获取/设置元素的属性值:
    1. element.getAttribute(attributeName)     //括号传入属性名,返回对应属性的属性值
    2. element.setAttribute(attributeName,attributeValue)    //传入属性名及设置的值
  3. 创建节点Node:
    1. document.createElement("h3")       //创建一个html元素,这里以创建h3元素为例
    2. document.createTextNode(String); //创建一个文本节点;
    3. document.createAttribute("class"); //创建一个属性节点,这里以创建class属性为例
  4. 增添节点:
    1. element.appendChild(Node);   //往element内部最后面添加一个节点,参数是节点类型
    2. elelment.insertBefore(newNode,existingNode); //在element内部的中在existingNode前面插入newNode
  5. 删除节点:
    1. element.removeChild(Node)    //删除当前节点下指定的子节点,删除成功返回该被删除的节点,否则返回null
  • 常用属性:
  1. 获取当前元素的父节点 :
    1. element.parentNode     //返回当前元素的父节点对象
  2. 获取当前元素的子节点:
    1. element.chlidren        //返回当前元素所有子元素节点对象,只返回HTML节点
    2. element.chilidNodes   //返回当前元素多有子节点,包括文本,HTML,属性节点。(回车也会当做一个节点)
    3. element.firstChild      //返回当前元素的第一个子节点对象
    4. element.lastChild       //返回当前元素的最后一个子节点对象
  3. 获取当前元素的同级元素:
    1. element.nextSibling          //返回当前元素的下一个同级元素 没有就返回null
    2. element.previousSibling   //返回当前元素上一个同级元素 没有就返回null
  4. 获取当前元素的文本:
    1. element.innerHTML   //返回元素的所有文本,包括html代码
    2. element.innerText     //返回当前元素的自身及子代所有文本值,只是文本内容,不包括html代码
  5. 获取当前节点的节点类型:node.nodeType   //返回节点的类型,数字形式(1-12)常见几个1:元素节点,2:属性节点,3:文本节点。
  6. 设置样式:element.style.color=“#eea”;      //设置元素的样式时使用style,这里以设置文字颜色为例。

4.总结:

大家都会觉得用jQuery来操作dom会更加的方便且好用,因为jq对js的dom进行了封装,使得我们Write Less, Do More。但是我觉得还是要总结一下原生js的dom,从根本上了解js对dom的操作,只会有利而无害。

作者:Ry-yuan

如有错误欢迎各大网友指出

如需转载请标注原文地址:http://www.cnblogs.com/Ry-yuan/p/6918155.html

时间: 2024-11-05 20:28:52

Js之浅谈dom操作的相关文章

【浅谈DOM事件的优化】

浅谈DOM事件的优化 在 JavaScript程序的开发中,经常会用到一些频繁触发的 DOM 事件,如 mousemove.resize,还有不是那么常用的鼠标滚轮事件:mousewheel (在 Firefox 中,滚轮事件为 DOMMouseScroll). 浏览器为了确保这些事件能够及时响应,触发的频率会比较高,具体的触发频率各浏览器虽然有出入,但出入不大.很多时候在需要注重性能的场景下使用这些事件会想各种办法对事件的触发频率进行优化,下面说说我的一些优化方法. mousemove 在拖拽

开发技术--浅谈文件操作与字符编码

开发|浅谈文件操作与字符编码 听说Python的文件操作很容易在某一些电脑上出问题,然而罪魁祸首就是字符编码.让我们来了解一些底层的编码方式. 前言 目前所有的文章思想格式都是:知识+情感. 知识:对于所有的知识点的描述.力求不含任何的自我感情色彩. 情感:用我自己的方式,解读知识点.力求通俗易懂,完美透析知识. 正文 本文主要分为两大部分,一部分是如何使用Python进行文件操作,另一部分是聊一下字符编码的那些事.(比较绕,尽量用最最最通俗的话表述~~) 文件操作 1.文件操作方式 open(

js,jQuery和DOM操作的总结(二)

jQuery的基本操作 (1)遍历键值对和数组 var arr = [9, 8, 7, 6, 5, 4]; $.map(arr, function (ele, index) { alert(ele + '===' + index); //第一个参数是数组里面的值,第二个参数是索引 }) //=========================================// var keyWord = { "name": "老牛", "age"

js,jQuery和DOM操作的总结(一)

废话不说,直接上图 一 js的基本操作 (1)js 的六种数据类型 var n4;//六种数据类型用typeof来确定类型,Null类型的用typeof是不行的,这个是特殊 alert(typeof (n4)); var n1 = 123; alert(typeof n1); var n2 = "hahaha"; alert(typeof (n2)); var n3 = true; alert(typeof (n3)); var n5 = null; alert(String(n5))

笔记 js 基础笔记(Dom操作)

共同学习js,不对的地方欢迎大家指正. js Dom 操作 一 document获取节点的基本方法     1.document.getElementById('id');                                  //通过id来获取元素,返回指定的唯一元素.     2.document.getElementsByName("name");                      //通过name来获取元素,返回name='name'的集合.     3.d

js获取节点的DOM操作

一直感觉DOM节点什么的乱七八糟的不能理解,可能博客也没办法写清楚,只能把知道的一些信息大致写下来慢慢再补充了. HTML DOM类型 Node类型 Javascript中的所有节点类型都继承自Node类型,因此所有节点类型都共享着相同的基本属性和方法. 除IE外其他浏览器都可以访问到这个类型. 每个节点都有一个NodeType属性,用于表明节点的类型,节点类型由在Node类型中定义的下列12个常数值来表示,任何节点类型必居其一. 根据这些常量值可以很容易的判断节点类型. if(someNode

浅谈DOM数遍历

最近一直在研究DOM遍历以及范围的定义: 其实,JS中DOM模块定义了两个用于辅助完成顺序遍历DOM结构的类型:NodeIterator和TreeWalker.这两个类型能够基于给定的起点对DOM结构执行深度优先的遍历操作: 然,此上出自与“DOM2 级遍历和范围”的内容;不过你们懂得,IE不支持DOM遍历.所以,使用下列代码可以检测浏览器对DOM2级遍历能力的支持情况: var  sTraversals = document.implementation.hasFeature("Travers

浅谈DOM基础

DOM:文档对象模型(Document Object Model),实际上是以面向对象方式描述的文档模型. 概念: 表示和处理一个HTML或者XML文档的常用方法.DOM的设计是以对象 管理者组织的规约为基础的,因此可以用于任何编程语言. D:文档可以理解为整个Web加载的网页文档: O:对象调用属性和方法(document对象): M:模型可以理解为网页文档的树形结构. DOM节点:DOM不仅可以查找节点,也可以创建节点.复制.插入删除和替换节点.加载HTML页面时,Web浏览器生成一个树形结

JavaScript复习 js登录简单实现 dom操作练习

js登录简单实现: html源代码: 1 <!doctype html> 2 <html> 3 <head> 4 <meta charset="utf-8"> 5 <title>无标题文档</title> 6 <script type="text/javascript" src="denglu.js/dengluyanzheng.js"></script&g