JavaScript学习笔记系列1:Dom操作(一)

一.什么是Dom?

  DOM------>Document Object Model 直接翻译就是文档对象模型。

  DOM------>定义了表示和修改文档所需的对象、这些对象的行为和属性以及这些对象之间的关系。DOM对象即为宿主对象,由浏览器厂商定义,用来操作html和css功能的一类对象的集合。也有人称DOM是对HTML以及XML的标准编程接口。说白了就是类型C#对象集合。举个例子 I/0,I/O包含了很多操作文件和流的对象。意思是一样的。

二.如何使用Dom?

   1.查看方法。docment.getElementsById()。通过Id获取元素。下面代码实操。

    

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
</head>

<body>
    <div id="MyDiv">
        一小时小超人很帅!
    </div>
<script type="text/javascript">
        var div=document.getElementById(‘Only‘)
</script>
</body>
</html>

定义了一个div变量,并且通过Id取到Div。接下来在控制台看一下效果。

我输出div这个变量就显示了div。在IE8以下的浏览器id是不区分的大小写。

除了getElementById,还有好多个方法。我下面列举下。

document.getElementById() //元素id 在Ie8以下的浏览器,不区分id大小写,而且也返回匹配name属性的元素

getElementsByTagName() // 标签名

getElementsByName(); //IE不支持需注意,只有部分标签name可生效(表单,表单元素,img,iframe)

getElementsByClassName() // 类名 -> ie8和ie8以下的ie版本中没有,可以多个class一起

querySelector() // css选择器 在ie7和ie7以下的版本中没有

querySelectorAll() // css选择器 在ie7和ie7以下的版本中没有

简单说下querySelector 和 querySelectorAll

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
</head>

<body>
    <div clas="MyDiv">
            一小时小超人很酷!
        </div>
    <div id="MyDiv">
        一小时小超人很帅!
    </div>

<script type="text/javascript">

        var div=document.querySelector(‘.MyDiv‘)

</script>
</body>
</html>
querySelector写法和Css选择器的写法一样。
querySelector和querySelectorAll的区别是一个返回单个,一个返回的是类数组。如果querySelector满足多个只返回第一个。

2.上面的操作是获取了节点。接下来讲讲节点有哪些操作。   遍历节点树:  parentNode -> 父节点  (最顶端的parentNode为#document);  childNodes ->子节点们  firstChild ->第一个节点  lastChild ->最后一个节点   nextSibling->最后一个兄弟节点  previousSibling->前一个兄弟节点。  上面我列举的都是节点的属性。我们整个html文档是一个树型的。通过上面的操作我可以遍历整个树,意思就是可以找个整个树上的任意的节点,并且操作。

  遍历元素节点树:  parentElement->返回当前元素的父元素节点。(IE不兼容)  children->返回当前元素的子节点元素   node.childElementCount  === node.children.length当前元素节点的子元素节点个数(IE不兼容)  firstElementChild -> 返回的是第一个元素节点(IE不兼容)  lastElementChild->返回的是最后一个元素节点(IE不兼容)  nextElementSibling/previousElementSiling->返回后一个/前一个兄弟元素节点。(IE不兼容) ` 上面2个一个是遍历节点树,一个是遍历元素节点树。这个两个有什么区别呢?首先要了解一个概念就是节点:什么节点?节点定义不仅仅是指我们的html标签,文字,注释都算是节点,还有属性啦比如id,class这些都是。所以两者区别都是知道了。遍历节点,不仅包含html标签。还包含其他的东西。  而遍历元素节点。则是遍历我们真正需要的元素节点。所以从使用上。我们的遍历元素节点是方便的。但是!注意这里的但是。实际我们使用的是遍历节点树。这是为什么呢?为什么遍历元素节点更方便。因为IE不兼容。只要不兼容。就不好用了。为什么IE这么不一样。因为那个时期。浏览器是IE的天下。市场份额占了78成。所以他就牛逼啊。就不遵守规则,玩自己的一套。不过后来随着市场份额减少。他也变老实了。下面代码演示以下。
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
</head>

<body>
    <div class="MyDiv">一小时小超人很酷!
     </div>
    <div id="MyDiv1">
        一小时小超人很帅!
    </div>

<script type="text/javascript">

        var div=document.getElementById(‘MyDiv1‘)
        var div1=div.previousElementSibling

</script>
</body>
</html>

既然我们实际中用的是遍历节点树。那怎么区分这个节点是我们想要的还是不是我们想要的呢?dom在节点上为我们提供了type属性让我们进行区分

  

节点的类型

  元素节点 —— 1

   属性节点 —— 2

  文本节点 —— 3

  注释节点 —— 8

  document —— 9

  DocumentFragment —— 11

   获取节点类型 nodeType

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
</head>

<body>
    <div class="MyDiv">一小时小超人很酷!
     </div>
    <div id="MyDiv1">
        一小时小超人很帅!
        <span>1</span>
        <span><a href=""></a></span>
        <a href=""></a>
        <p></p>
    </div>

<script type="text/javascript">

        var div=document.getElementById(‘MyDiv1‘)
        var div1=div.previousElementSibling
        var Elements=div.childNodes;
        var ElemenList=[];
        for(var i=0;i<Elements.length;i++)
        {
            if(Elements[i].nodeType==1)
            {
                ElemenList.push(Elements[i])
            }
        }

</script>
</body>
</html>

三.小结

好好学习,天天向上

原文地址:https://www.cnblogs.com/DingKing/p/8290058.html

时间: 2024-10-21 06:13:47

JavaScript学习笔记系列1:Dom操作(一)的相关文章

HTML 学习笔记 JQuery(DOM 操作)

一般来说,DOM操作分为三个方面,即:DOM Core(核心), HTML_DOM 和 CSS_DOM. 1.DOM Core DOM Core 并不专属于JavaScript,任何一种支持DOM的程序设计语言都可以使用它.他的用途并不局限于处理网页,也可以处理任何一种使用标记语言编写出来的文档,例如XML JavaScript中的GetElemrntById(),getElementsByTagName(),GetAttribute() 和 setAttribute()等方法,这些都是DOM

JQuery学习笔记-JQuery的DOM操作

DOM(Document Object Model 文档对象模型):一种与浏览器.平台.语言无关的接口,使用该接口可以轻松地访问页面中所有的标准组建 DOM操作的分类 -DOM Core : DOM Core并不专属于JavaScript,任何一种支持DOM的程序设计语言都可以使用.它的用途并非仅限于处理网页,也可以用来处理任何一种是用标记语言编写出来的文档,如XML -HTML DOM:使用JavaScript和DOM为HTML文档编写脚本时,有许多专属于HTML-DOM的属性 -CSS-DO

高性能javascript学习笔记系列(1) -js的加载和执行

这篇笔记的内容主要涉及js的脚本位置,如何加载js脚本和脚本文件执行的问题,按照自己的理解结合高性能JavaScript整理出来的 javascript是解释性代码,解释性代码需要经历转化成计算机指令的过程,这个过程就会带来一定的性能损耗,所以在js中做性能的优化是必须的 javascript的阻塞特性:浏览器在执行js代码的时候,不能做其他的任何事情,因为浏览器使用单一的进程来处理用户界面的刷新和javascript的脚本执行,也就是说什么时候执行js脚本影响着用户对页面的使用体验(之所以js

HTML 学习笔记 JQuery(DOM 操作3)

设置和获取HTML 文本 和 值 1.html()方法 类似于JavaScript中的innerHTML属性,可以用来读取或者设置某个元素中的HTML内容 例子 <html> <head> <meta charset="UTF-8"> <title></title> <script src="../js/jquery-2.1.1.min.js"></script> </head

JavaScript学习笔记7 之DOM文档对象模型

一.什么是DOMDocument Object Model 文档 -------对象 ----模型-------缩写DOM DOM是针对HTML和XML文档的一个API(应用程序编程接口).DOM描绘了一个层次化的节点树,允许开发人员添加.移除和修改页面的某一部分.DOM树中的所有节点均可通过JS进行访问.所有HTML元素(节点)均可被修改.创建或删除. 二.节点类型1.节点类型 HTML 文档中的所有内容都是节点(node): 整个文档是一个文档节点每个 HTML 元素是元素节点HTML 元素

javascript学习笔记第一周DOM

Javascript第一周 DOM基础 DOM (Document Object Model) 即文档对象模型 DOM 有三个等级,分别是 DOM1.DOM2.DOM3. 获取DOM元素的方法根据W3C标准有以下几种: 1.getElementById() getElementById()方法,接受一个参数:获取元素的 ID.如果找到相应的元素则返回该元素的 HTML 对象,如果不存在,则返回 null. 2.getElementsByTagName() getElementsByTagName

javascript学习笔记整理(DOM对象)

DOM--document(html xml) object modle,document对象(DOM核心对象),document对象是 Window 对象的一部分,可通过window.document属性对其进行访问,document 对象使我们可以从脚本中对 HTML 页面中的所有元素进行访问 1.属性 title--返回或设置当前文档的标题 url--返回当前文档的URL bgColor--设置文档的背景色 fgColor 设置文档的前景色(设置文字颜色) 2.方法 getElementB

高性能javascript学习笔记系列(5) -快速响应的用户界面

参考高性能javascript 理解浏览器UI线程  用于执行javascript和更新用户界面的进程通常被称为浏览器UI线程  UI线程的工作机制可以理解为一个简单的队列系统,队列中的任务按顺序执行 <button onclick="handleClick()">click</button> <script type="text/javascript"> function handleClick() { var div = do

高性能javascript学习笔记系列(4) -算法和流程控制

参考高性能javascript for in 循环  使用它可以遍历对象的属性名,但是每次的操作都会搜索实例或者原型的属性 导致使用for in 进行遍历会产生更多的开销 书中提到不要使用for in 遍历数组 1 首先for in 会查找原型链上的属性 var arr = [1,2,3]; Array.prototype.a = "test"; for(var i in arr) { console.log(i); console.log(typeof i); }//在这里例子中会发