HTML DOM


当网页被加载时,浏览器会创建页面的文档对象模型(Document Object Model)。
 

DOM节点类型


  • 文档节点 (document,唯一)
  • 元素节点 (那些个标签div,p之类)
  • 属性节点(class,src这种)
  • 文本节点(插入在p,div内的文本)
 

document中的open()定义和用法


open() 方法可打开一个新文档,并擦除当前文档的内容。

语法

document.open(mimetype,replace)
参数 描述
mimetype 可选。规定正在写的文档的类型。默认值是 "text/html"。
replace 可选。当此参数设置后,可引起新文档从父文档继承历史条目。

说明

该方法将擦除当前 HTML 文档的内容,开始一个新的文档,新文档用 write() 方法或 writeln() 方法编写。

提示和注释

重要事项:调用 open() 方法打开一个新文档并且用 write() 方法设置文档内容后,必须记住用 close 方法关闭文档,并迫使其内容显示出来。

注释:属于被覆盖的文档的一部分的脚本或事件句柄不能调用该方法,因为脚本或事件句柄自身也会被覆盖。

function createNewDoc()
{
var newDoc = document.open("test/html","replace");
var txt = "学习 DOM 非常有趣!";
newDoc.write(txt);
newDoc.close();
}



<input type="button" value="打开并写入一个新文档" onclick="createNewDoc()"/>
 

查找元素方式


//查找id为shanghai的元素
var shanghai= docment.getElementById('shanggai'); //查找name为city的元素集合
var citys = docment.getElementByNames('city'); //查找class为btn btn-info的元素集合
var buttons = getElementsByClassName('btn btn-info'); //在citys对象中查找标签名为li的元素集合
var li = citys.getElementsByTagName('li');

改变标签内容和属性


//获取id为"div"的元素
var node = document.getElementById('div'); //增加或改变元素属性
document.getElementById('div').setAttribute("class","window j"); //返回节点名称
var name = node.nodeName; //返回节点类型
var type = node.nodeType; //返回父节点
var parent = node.parentNode; //返回子节点集合
var childs = node.childNodes; //删除当前节点
node.parentNode.removeChild(node); //创建节点
var div = document.createElement('DIV'); //替换节点(新的节点,被替换的节点)
node.parentNode.replaceChild(div, node); //添加子节点
node.appendChild(div);

innerText、innerHTML、nodeValue 三者的区别


innerText: 设置或获取位于启始标签和结束标签之间的字符串

<div id="div">Hello World</div>
<input type="text" id="input" /> //输出为"Hello World"
var div = document.getElementById('div').innerText;
//输出为""
var input= document.getElementById('input').innerText;

innerHTML: 设置或返回位于启始标签和结束标签之间的 HTML文本

<div id="div"><span>Hello World</span></div>

//输出为"<span>Hello World</span>"
var div = document.getElementById('div').innerHTML;

nodeValue: 设置或返回属性节点和文本节点的值。

<div id="div" class="div class">
<span id="span">Hello World</span>
</div> var div = document.getElementById('div');
var span = document.getElementById('span'); //输出为null,因为div属于元素节点,元素节点是没有值的
console.log(div.nodeValue); //输出为"div class" 属性节点是有值的
console.log(div.getAttributeNode('class').nodeValue);
//输出为"div"
console.log(div.getAttributeNode('id').nodeValue); //输出为"Hello World",span实际上有一个子节点,该节点是一个文本节点,
//文本节点虽然没有标签,但它依然是一个节点
console.log(span.childNodes[0].nodeValue);

中文在线API


http://www.w3cschool.cn/htmldom/htmldom-tutorial.html

前端学习笔记之HTML DOM操作的更多相关文章

  1. 前端学习(二十三)DOM操作,事件(笔记)

    javascript 组成部分    1.ECMAScript        javascript的核心解释器 2.DOM        Document Object Modle         文 ...

  2. HTML 学习笔记 JQuery(DOM 操作)

    一般来说,DOM操作分为三个方面,即:DOM Core(核心), HTML_DOM 和 CSS_DOM. 1.DOM Core DOM Core 并不专属于JavaScript,任何一种支持DOM的程 ...

  3. JavaScript学习笔记系列2:Dom操作(一)

    一.什么是Dom? DOM------>Document Object Model 直接翻译就是文档对象模型. DOM------>定义了表示和修改文档所需的对象.这些对象的行为和属性以及 ...

  4. HTML 学习笔记 JQuery(DOM 操作2)

    接着上一节的将,这一节从复制节点讲起 复制节点 继续使用之前的例子 如果单击<li>元素后 需要在复制一个<li>元素,可以使用clone()方法完成.全部代码如下 <h ...

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

    设置和获取HTML 文本 和 值 1.html()方法 类似于JavaScript中的innerHTML属性,可以用来读取或者设置某个元素中的HTML内容 例子 <html> <he ...

  6. 【前端】Web前端学习笔记【1】

    ... [2015.12.02-2016.02.22]期间的学习笔记. 相关博客: Web前端学习笔记[2] 1. JS中的: (1)continue 语句 (带有或不带标签引用)只能用在循环中. ( ...

  7. Web前端学习笔记(001)

    ....编号    ........类别    ............条目  ................明细....................时间 一.Web前端学习笔记         ...

  8. 【前端】Web前端学习笔记【2】

    [2016.02.22至今]的学习笔记. 相关博客: Web前端学习笔记[1] 1. this在 JavaScript 中主要有以下五种使用场景 在全局函数调用中,this 绑定全局对象,浏览器环境全 ...

  9. RX学习笔记:JavaScript数组操作

    RX学习笔记:JavaScript数组操作 2016-07-03 增删元素 unshift() 在数组开关添加元素 array.unshift("value"); array.un ...

随机推荐

  1. (转)FS_S5PC100平台上Linux Camera驱动开发详解(一) .

     平台linuxstructlinux内核videocam 说明:        理解摄像头驱动需要四个前提:        1)摄像头基本的工作原理和S5PC100集成的Camera控制器的工作原理 ...

  2. Web设计的速查卡(转)

    一.排版 1.VisiBone Font Card Download: GIF 2.常用字体表 (HTML) 3.混合字体 (PDF) 二.单元/尺寸 1.Points 和Pixels近似转换表 (H ...

  3. java基础知识总结8(数据库篇1)

    一. Oracle的安装(windowXP.win7.Linux)和卸载 1.1 Oracle的安装 1.1.1 在WindowsXP.Win7下安装 第一:解压win32_11gR2_databas ...

  4. mulitp request

    1.设置cookie 2.设置header 3.通过requst.getInputStream(); 4.通过request.getsession();

  5. angularJs上传文件(非form上传)

    angular.js:13920 Broken interceptor detected: Config object not supplied in rejection: <input typ ...

  6. MySQL--执行mysql脚本及其脚本编写

    http://www.cnblogs.com/kex1n/archive/2010/03/26/2286504.html

  7. C++ 访问控制 public, protected, private, 友元

    1. 变量属性与继承之间的关系 #include <iostream> using namespace std; class A { public: int x; protected: i ...

  8. 第三篇:C++ 中的几种初始化

    前言 阅读C++教材时,想必你听过复制初始化,直接初始化,值初始化这三个概念吧.笔者本人常将其混淆,遂在此记录下它们的具体含义以便日后查阅. 复制初始化( copy-initialization ) ...

  9. 码农深耕 - 说说IDisposable

    概要 C#提供了方便的垃圾回收机制,使我们几乎不再需要为资源管理费心.可事实上,能被垃圾回收释放掉的只是托管资源,非托管资源还是需要我们手动释放.而为了实现这一目的,C#提供了 IDisposable ...

  10. java -jar后台启动

    nohup  java -jar XX.jar >logs.log &