JavaScript基础08——DOM

DOM的概念

DOM是document Object Model的缩写,简称文档对象模型。他给文档提供了一种结构化的表示方式,可以改变文档的内容和呈现方式

所谓的DOM是以家族的形式描述HTML。父子节点,兄弟节点

DOM中的选择器

    1.getElementById(id)        //获取指定元素的ID元素

    2.getElementsByTagName()    //获取相同元素的节点列表,通过标签名选择元素,返回值是一个数组

    3.getElementsByName()       //通过name值获取元素,返回值是数组,通常用来获取有name的input的值

    4.getElementsByClassName()  //通过class名获取元素,返回值是数组n

//    注意:1.不是所有标签都有name值;2.在低版本的浏览器中,getElementsByName和getElementsByClassName有兼容性

ES5选择器:

document.querySelectorAll();    //强大到超乎想象,支持IE8+。ECMAScript借鉴了jQuery选择器的
    //返回一个数组,哪怕只有一个元素
    document.querySelector();
    //返回单个元素

DOM属性的基本操作(增/删/改/查)

改变元素的内容(innerHTML),属性(value),样式(width,height,background)

也就是对DOM进行增删改查

DOM的属性操作,增删改查

什么是元素的属性?class就是元素的属性,写在元素内的所有东西都是元素的属性,比如link的href,img的src等

元素的属性是什么,分为两种,一种叫内置属性,一种叫非内置属性。

内置属性可以直接通过点"."进行操作

    tagName               //返回值是当前元素的标签名
    innerHTML/innerText  //返回值是当前元素的内容
    id                    //返回值是当前元素的ID
    title                 //获取title的标签值,这个title是从document中获取的
    className             //返回值是当前元素的class
    href                  //返回值是当前的href的值

以上这些属性既可以获取,也可以设置

非内置属性需要通过一些节点的方法进行操作,注意:节点的方法,前缀一定是节点

    getAttribute()        //获取 元素的属性
    setAttribute()        //设置/修改 元素的属性,低版本的IE不兼容;接收两个参数,属性名和属性值
    removeAttribute()     //删除 元素的属性,低版本的IE不兼容

总结一下就是不可见的,一律对象操作;

可见的分为内置和非内置 :内置:即可用方法操作,也可作对象操作;    非内置:只能对象操作;

节点

根据DOM规定,HTML文档中的每个成分都是一个节点。

DOM是这样规定的:

整个文档是一个文档节点

每个HTML标签是一个元素节点

包含在HTML元素中的文本是文本节点

每一个HTML属性是一个属性节点

注释属于注释节点

相当于HTML文档中的所有内容都是节点,元素是节点的别称,节点包含元素,当然节点还有好多细化的种类

关系节点:

对象.parentNode    //获得父元素节点

对象.children      //获得子元素节点的集合,不包含空白节点

对象.firstElementChild       //获得第一个非空白的子节点。(IE7/8不支持)

对象.lastElementChild        //获得最后一个非空白的子节点。(IE7/8不支持)

对象.nextElementSibling      //获得下个兄弟节点。(IE7/8不支持)

对象.prveiousElementSibling  //获得上一个兄弟节点。(IE7/8不支持)

其他节点选择器(包含空白节点):

对象.childNodes    //获得所有子节点的集合,包括空白节点

对象.firstChild              //获得第一个子节点。(IE7/8非空白节点,可能是注释节点)

对象.lastChild               //获得最后一个子节点(IE7最后一个元素节点,IE8最后一个非空白节点,可能是注释节点)

对象.nextSibling             //获得下一个兄弟节点。(包含空白节点和注释,IE7/8包括注释节点,不包括空白节点)

对象.previousSibling         //获得上一个兄弟节点。(包含空白节点和注释。IE7/8包括注释节点,不包括空白节点)

如何获取属性节点:

对象.attributes   //获得所有属性节点,返回一个数组

<div class = "box" a = "10" b = "20" c = "30" id = "cont">hello</div>

console.log(obox.attributes);        //box,10,20,30,cont
console.log(obox.attributes[2])    //b = "20";
console.log(obox.attributes[1].a)    //undefined;

console.log(obox.attributes[1].nodeName)    //a
console.log(obox.attributes[1].nodeValue)     //10
console.log(obox.attributes[1].nodeType)        //2

console.log(obox.nodeName)                   //DIV
 console.log(obox.nodeValue)                //null
console.log(obox.nodeType)                     //1

childNodes/过滤空白节点

通过 对象.childNodes 获得所有子节点的集合

节点属性 nodeType 返回值为数值

            节点类型(nodeType)    节点名字(nodeName)    节点值(nodeValue)
       元素节点         1                  标签名                 null
       文本节点         3                  #text                 文本
       注释节点         8                 #comment             注释的文字
       文档节点         9                 #document              null
       属性节点         2                  属性名                属性值    

    通过遍历所有子节点,将空白节点过滤掉,得出所有的元素节点

DOM元素的基本操作(增/删/改/查)

//  查询:选择器;

//    创建:createElement()  配合  appendChild()    将创建好的元素,插入到某个标签内的最后

//    删除:removeChild()  配合  parentNode
                元素.remove()    直接删除当前元素

    document.body.removeChild(div);

//    修改: outerHTML
    oh1.outerHTML = "<h2>" + oh1.innerHTML +"</h2>"

//    补充:创建文本节点createTextNode(“hello”)
         使用方式同createElement()

样式的操作:

获取尺寸样式类

     offsetParent:获取元素的最近的具有定位属性(absolute或者relative)的父级元素。如果都没有则返回body

    offsetLeft:获取元素相对具有定位属性的父级元素的左侧偏移距离

    offsetTop:获取元素相对就有定位属性的父级元素的顶部偏移距离

    scrollLeft/scrollTop:滚动条最顶端和窗口中可见内容的最顶端之间的距离

    clientWidth/clientHeight:元素视窗宽度/高度

    offsetWidth/offsetHeight:元素实际宽度/高度

原文地址:https://www.cnblogs.com/wuziqiang/p/12006100.html

时间: 2024-10-19 20:51:11

JavaScript基础08——DOM的相关文章

JavaScript基础:DOM操作详解

本文最初发表于博客园,并在GitHub上持续更新前端的系列文章.欢迎在GitHub上关注我,一起入门和进阶前端. 以下是正文. 前言 JavaScript的组成 JavaScript基础分为三个部分: ECMAScript:JavaScript的语法标准.包括变量.表达式.运算符.函数.if语句.for语句等. DOM:文档对象模型,操作网页上的元素的API.比如让盒子移动.变色.轮播图等. BOM:浏览器对象模型,操作浏览器部分功能的API.比如让浏览器自动滚动. 事件 JS是以事件驱动为核心

JavaScript基础(2)---dom,bom,变量类型,事件,ajax

变量类型: JavaScript中变量有值类型和引用类型,值类型就是直接给变量赋值,引用类型是把一个地址指针赋值给变量 引用类型包括------>数组,对象和函数,其它为值类型 用typeof可以区分哪些类型? 1 typeof undefined //undefined 2 typeof 123 //number 3 typeof 'abc' //string 4 typeof true //boolean 5 typeof [] //object 6 typeof {} //object 7

JavaScript基础之DOM修改样式

1.获取或设置元素的内容:3个属性:   1. innerHTML: 获取或设置元素开始标签到结束标签之间的所有HTML代码原文.      何时使用:只要获得完整的html代码原文时      优化:如果批量删除或插入多个子元素时,尽量避免单个操作!            每次插入或删除操作都会导致排版引擎重新layout.            如果批量删除或插入,排版引擎只需要一次layout即可.      如何优化:                1. 删除: parent.inner

javascript基础08

发现今天居然没有要写,那我就写写之前做的笔记吧. 这是事件的深入: 拖拽逻辑: 第一个: onmousedown : 选择元素 第二个: onmousemove : 移动元素 第三个:onmouseup : 释放元素 各浏览器在拖拽上都有问题:就是选中文字,就会产生问题 原因:当鼠标按下的时候选中文字就可以拖拽文字,这是浏览器的默认行为: 解决:阻止默认行为 ->在onmousedown时return false: ie8以下无效: ie8以下 : obj.setCapture(); 设置全局捕

JavaScript基础-----(DOM操作的内容)

查询元素 1.直接访问指定节点的方法 getElementById():返回一个节点对象 id getElementByName():返回多个(节点数组) 名字 getElementByTagName():返回多个(节点数组) 标签名 2.间接根据层次关系查找节点 父节点 parentNode 孩子节点 childNodes 数组对象,表示该节点的多有子节点的集合 firstChild   lastChild 兄弟节点 nextSibling  previousSiBling 操作文本 1.对于

JavaScript基础系列目录(2014.06.01~2014.06.08)

下列文章,转载请亲注明链接出处,谢谢! 链接地址: http://www.cnblogs.com/ttcc/tag/JavaScript%20%E5%9F%BA%E7%A1%80%E7%9F%A5%E8%AF%86%20%E6%80%BB%E7%BB%93/ 1. Javascript基础---语法(待完成) 2. JavaScript基础---数据类型(待完成) 3. JavaScript基础---Array数组(待完成) 4. JavaScript基础---正则表达式(待完成) 5. Jav

JavaScript基础--DOM对象加强篇(十四)

1.document 对象 定义:document对象代表的整个html文档,因此可以去访问到文档中的各个对象(元素)document重要的函数 1.1 write 向文档输出文本或js代码 1.2 writeln 向文档输出文本或者js代码,与write不一样的地方是,writeln是换行输出. 比如: document.write("hello");document.writeln("ok"); hello ok 但是对浏览器来看,输出效果没有区别. 1.3 g

JavaScript基础--DOM对象(十三):(windows对象:history\location\navigator\screen\event)

DOM编程1.为什么要学习DOM(1) 通过dom编程,我们可以写出各种网页游戏(2)dom编程也是ajax的重要基础2.DOM编程介绍DOM = Document Object Model(文档对象模型)DOM是HTML与XML的应用编程接口(API) BOM和DOM相辅相成的关系BOM为纲,DOM为目,DOM是BOM的具体体现 3.DOM对象 3.1 Windows对象 3.1.1 confirm function test(){ var res= window.confirm("你要删除&

javascript入门书籍推荐《javascript基础教程》

前段时间看javascript高级教程的时候,发现很多基础的javascript概念,自己不懂. 网上搜了一下,看到大家对<javascript基础教程(第8版)>评价不错,买了一本. 作者: (美)Tom Negrino Dori Smith 译者: 陈剑瓯 柳靖 丛书名: 图灵程序设计丛书 出版社:人民邮电出版社 翻开看了后,受益匪浅,决定将这本书推荐给javascript的入门童鞋. 这本书的读者,要有一定的HTML基础,因为javascript基本都是对Dom的操作,所以,有一定的HT