DOM编程

DOM是Document Object Model文档对象模型

DOM是一种与浏览器,平台,语言无关的接口,使得你可以访问页面其他的标准组件

DOM简介

D:文档  –  html 文档 或 xml 文档

O:对象 – document 对象的属性和方法

M:模型

学习这个DOM主要学习几个内容 Document(Element/Text/Attribute)

*由结构图中我们可以看到,整个文档就是一个文档节点。 Document

*  而每一个HTML标签都是一个元素节点。 Element

*  标签中的文字则是文本节点。  Text

*  标签的属性是属性节点。 Attribute

*  一切都是节点……  Node

获取dom的三种方式

第一种方式:在元素上添加一个id,然后通过getElementById拿到这个元素

var username = document.getElementById("username");

console.debug(username) ;    特点:拿到的是唯一的一个元素!

第二种方式:在元素加一个name,然后通过getElementsByName拿到这一组元素

var likes = document.getElementsByName("likes");

console.debug(likes);

for(var i=0;i<likes.length;i++){

console.debug(likes[i]);特点:可以根据名称(元素上的name属性)拿到一个节点数组

第三种方式: 通过元素的标签名拿到一组元素getElementsByTagName

var inputs = document.getElementsByTagName("input");

for(var i=0;i<inputs.length;i++){

console.debug(inputs[i]);特点:可以根据名称(标签的名称)拿到一个节点数组

node常用属性与方法

拿到dom的根有两种方式;

①方式一document.body  ->body标签

console.debug(document.body);

console.debug(document.body.clientWidth);//页面的宽

console.debug(document.body.clientHeight);//由body里面的内容决定高度

方式二document.documentElement

注意的区别:

document.documentElement.clientHeight:它拿到的是整个窗口高度

document.body.clientHeight:拿到内容的高度

node节点的属性与方法总表 (js里面一切皆节点,现在我们来学习这个节点的属性和方法

 

属性名称

名称

返回类型

节点列表

parentNode

父节点

Node

firstChild

列表中的第一个节点

Node

lastChild

列表中的最后一个节点

Node

childNodes

所有子节点的列表

NodeList

previousSibling

上一个兄弟节点

Node

nextSibling

下一个兄弟节点

Node

 

节点信息

 

nodeName

节点名称

String

nodeValue

节点值

String

nodeType

节点类型

Number

元素属性

attributes

一个元素的属性对象

NamedNodeMap

方法

hasChildNodes()

当childNodes包含一个或多个节点时,返回真

Boolean

appendChild(node)

将node添加到childNodes的末尾

Node

removeChild(node)

从childNodes中删除node

Node

replaceChild(newnode, oldnode)

将childNodes中的oldnode替换成newnode

Node

insertBefore(newnode, refnode)

在childNodes中的refnode之前插入newnode

Node

//parentNode父节点

var eyewa = document.getElementById("eyewa");

console.debug(eyewa.parentNode);

firstChild: 拿到第一个孩子

//firstChild 找到我的第一个儿子

var wawa = document.getElementById("wawa");

console.debug(wawa.firstChild);//注意空格换行也是一个元素

lastChild: 拿到最后一个孩子

var wawa = document.getElementById("wawa");

console.debug(wawa.lastChild);//注意最后一个空格换行也是一个元素

childNodes: 拿到孩子们

//childNodes 所以子节点的列表(如果有空格,就包含空格)

var wawa = document.getElementById("wawa");

console.debug(wawa.childNodes);

previousSibling: 上一个兄弟

//previousSibling: 上一个兄弟

var eyewa = document.getElementById("eyewa");

console.debug(eyewa.previousSibling);//眼镜娃上一个兄弟 大力娃

//nextSibling: 下一个兄弟

var eyewa = document.getElementById("eyewa");

console.debug(eyewa.nextSibling);//眼镜娃下一个兄弟 金刚娃

不同元素的节点信息

不同的节点类型包含 Element,Attribute,Text

nodeName,nodeValue,nodeType这三个也是节点的属性,在不同的节点中,这3个属性的值不一样;

//①Element 的 nodeName,nodeValue,nodeyType

var wawa = document.getElementById("wawa");

console.debug(wawa.nodeName);//UL

console.debug(wawa.nodeValue);//null 什么值都没有

console.debug(wawa.nodeType);//1

//②Attribute 的 nodeName,nodeValue,nodeyType

var wawa = document.getElementById("wawa");

var attr = wawa.getAttributeNode("id");

console.debug(attr.nodeName);//id

console.debug(attr.nodeValue);//wawa  (等于id="wawa")

console.debug(attr.nodeType);//2

Text的nodeName,nodeValue,nodeType

var eyewa = document.getElementById("eyewa");

var textNode = eyewa.firstChild;

console.debug(textNode.nodeName);//#text 不管它  就是表示text

console.debug(textNode.nodeValue);//眼镜娃

console.debug(textNode.nodeType);//3

 

nodeName

nodeValue

nodeType

Element(元素)

标签名称(LI)

null

1

Attribute(属性)

属性的名称(id)

属性的值

2

Text(文本)

#text

文本的内容

3

操作元素方法

hasChildNodes()--》当childNodes包含一个或多个节点时,返回真

appendChild(node)--》添加元素

removeChild(node)--》删除元素

replaceChild(newnode, oldnode)--》修改元素

insertBefore(newnode, refnode)--》插入元素

createElement(“元素名称”)--》创建元素

① 加元素 appendChild(node)从内存中创建一个标签,追加到页面上

var li = document.createElement("li");

li.innerHTML = "隐身娃";

//拿到父亲节点 ul

var wawa = document.getElementById("wawa");

//把li 添加ul里面

wawa.appendChild(li);

将一个已有的元素添加到另外一个元素里面

//拿到已有的元素

var maer = document.getElementById("maer");

//拿到需要添加的元素

var westRun = document.getElementById("westRun");

westRun.appendChild(maer);

将一个已有的节点进行替换 --》修改元素:replaceChild()

var newMonkey = document.createElement("h3");

newMonkey.innerHTML = "六小锋";

var oldMonkey = document.getElementById("sun");

var westRun = document.getElementById("westRun");

westRun.replaceChild(newMonkey,oldMonkey);

删除元素:removeChild()

noeyewa.parentNode.removeChild(noeyewa);

插入一个节点 insetBefore(new,old)

添加文字

nnerText和innerHTML区别:

innerText:会把值原封不动显示(火狐低版本中不支持)

innerHTML:会将值解析成HTML的格式显示

如果我元素上有的属性,都可以通过元素对象.属性名 或者 元素对象["属性名"]来获取

//修改或者替换属性

var myimg = document.getElementById("myimg");

myimg.title="姚明";

myimg.src="../img/b.png";

JavaScriptDom和应用的更多相关文章

  1. 前端学习记录之Javascript-DOM

    简介 为了快捷方便,在工作和项目中,一直都是使用的框架,比如jqeruy,vuejs,react等.然后在长时间使用框架后,往往有一个后遗症,就是对于原生的Javascript基本上已经不知道怎么写了 ...

  2. javascript-DOM学习

    javascript-DOM学习 DOM document(html) object modle document对象(DOM核心对象) dom能用来干什么? 对html元素的样式(颜色.大小.位置等 ...

  3. JavaScriptDOM编程学习笔记(二)图片库案例

    <JavascriptDOM编程艺术>提供一个图片库的demo,主要讲解如何更好的使用JavaScript在网页中,跟随作者的思路来分析一下这个案例 首先需求是将图片发布到网上,但是如果发 ...

  4. JavaScript---Dom树详解,节点查找方式(直接(id,class,tag),间接(父子,兄弟)),节点操作(增删改查,赋值节点,替换节点,),节点属性操作(增删改查),节点文本的操作(增删改查),事件

    JavaScript---Dom树详解,节点查找方式(直接(id,class,tag),间接(父子,兄弟)),节点操作(增删改查,赋值节点,替换节点,),节点属性操作(增删改查),节点文本的操作(增删 ...

  5. web前端学习(四)JavaScript学习笔记部分(4)-- JavaScriptDOM对象

    1.Javascript-DOM简介 1.1.HTML DOM 1.2.DOM操作HTML 1.2.1.JavaScript能够改变页面中的所有HTML元素 1.2.2.JavaScript能够改变页 ...

  6. Javascript-DOM总结

    DOM总结 1.DOM的含义     DOM是Document Object Model文档对象模型的缩写.根据W3C DOM规范,DOM是一种与浏览器,平台,语言无关的接口,使得你可以访问页面其他的 ...

  7. 01.总结的javascript-DOM/BOM集合

    javascript总结: javascript 主要包括三个部分:1.DOM; 2.BOM; 3.ECMAscript 一.DOM(对象文档模型) 1.几个重要概念: 1)dom节点:元素,属性,文 ...

  8. JavaScript--DOM修改元素的属性

    一旦你获得了要修改的元素,可以有2种方式,来读取和修改它的属性:一种老的方式(它被更多的用户代理所支持)和一种新的DOM方法的方式.老的和新的用户代理都允许你以对象属性的方式获取和设置元素的属性. 先 ...

  9. JavaScript---DOM文档

    DOM文档中,每个节点都有一些重要的属性: 最重要的是nodeType,它描述该节点是什么---元素(element).属性(attribute).注释(comment).文本(text)或者其他几种 ...

  10. 你不知道的JavaScript--DOM基础详解2

    转载:http://blog.csdn.net/i10630226/article/details/49785165 先上几张图简要看看DOM的一些方法属性: 大概这些就是常用的,下面具体聊聊. 节点 ...

随机推荐

  1. Centos7 php-fpm root 运行,执行 kill 等系统命令

    Centos7 php-fpm root 运行,执行 kill 等系统命令 前提 当前系统安装的是宝塔环境,PHP的环境在如下的目录: /www/server/php/72/etc 1 修改 php- ...

  2. Kafka 2.1.0压缩算法性能测试

    Apache Kafka 2.1.0正式支持ZStandard —— ZStandard是Facebook开源的压缩算法,旨在提供超高的压缩比(compression ratio),具体细节参见htt ...

  3. P5173 传球

    题目背景 临近中考,pG的班主任决定上一节体育课,放松一下. 题解:https://blog.csdn.net/kkkksc03/article/details/85008120 题目描述 老师带着p ...

  4. flask将日志写入日志文件

    import logging logging.basicConfig(level=logging.DEBUG,#控制台打印的日志级别 filename='log_new.log', # 将日志写入lo ...

  5. Mac上Vim的配置文件及插件

    Vim是公认的终端编辑神器,配置文件设置的好,再加上各种功能的插件,更能使其如虎添翼,下面就分享出博主的配置文件,也是从网上大神那里拷过来的.配置文件在用户目录下~/.vimrc ,如果没有,就自己创 ...

  6. ArcGIS AddIN 与ArcMap自带工具进行交互

    参考示例代码:C:\Program Files (x86)\ArcGIS\DeveloperKit10.1\Samples\ArcObjectsNet\Brushing 核心代码: //获取Selec ...

  7. mysql中主外键关系

    一.外键: 1.什么是外键 2.外键语法 3.外键的条件 4.添加外键 5.删除外键 1.什么是外键: 主键:是唯一标识一条记录,不能有重复的,不允许为空,用来保证数据完整性 外键:是另一表的主键, ...

  8. uploadify 火狐 http error:302

    网上查询了一都说是flash 中 Session问题 (IE会自动复制过去),大多说将session值传过去就可以了但我们用的是公司的一套权限,改不了用户登录信息 无奈只好不用用户信息来做,果然对了 ...

  9. java_工厂模式

    定义: 初学者总是把所有的代码写在一个类里面,这样是非常危险的,因为所有错误集中在一个类里了,而且代码一长,调试就很困难 所以参照工厂流水线,分车间分模块来写代码,在实际操作中也就是说将代码模块化,封 ...

  10. Gym 101775B - Scapegoat - [贪心+优先队列]

    题目链接:http://codeforces.com/gym/101775/problem/B Aori is very careless so she is always making troubl ...