前端学习笔记之HTML DOM操作
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操作的更多相关文章
- 前端学习(二十三)DOM操作,事件(笔记)
javascript 组成部分 1.ECMAScript javascript的核心解释器 2.DOM Document Object Modle 文 ...
- HTML 学习笔记 JQuery(DOM 操作)
一般来说,DOM操作分为三个方面,即:DOM Core(核心), HTML_DOM 和 CSS_DOM. 1.DOM Core DOM Core 并不专属于JavaScript,任何一种支持DOM的程 ...
- JavaScript学习笔记系列2:Dom操作(一)
一.什么是Dom? DOM------>Document Object Model 直接翻译就是文档对象模型. DOM------>定义了表示和修改文档所需的对象.这些对象的行为和属性以及 ...
- HTML 学习笔记 JQuery(DOM 操作2)
接着上一节的将,这一节从复制节点讲起 复制节点 继续使用之前的例子 如果单击<li>元素后 需要在复制一个<li>元素,可以使用clone()方法完成.全部代码如下 <h ...
- HTML 学习笔记 JQuery(DOM 操作3)
设置和获取HTML 文本 和 值 1.html()方法 类似于JavaScript中的innerHTML属性,可以用来读取或者设置某个元素中的HTML内容 例子 <html> <he ...
- 【前端】Web前端学习笔记【1】
... [2015.12.02-2016.02.22]期间的学习笔记. 相关博客: Web前端学习笔记[2] 1. JS中的: (1)continue 语句 (带有或不带标签引用)只能用在循环中. ( ...
- Web前端学习笔记(001)
....编号 ........类别 ............条目 ................明细....................时间 一.Web前端学习笔记 ...
- 【前端】Web前端学习笔记【2】
[2016.02.22至今]的学习笔记. 相关博客: Web前端学习笔记[1] 1. this在 JavaScript 中主要有以下五种使用场景 在全局函数调用中,this 绑定全局对象,浏览器环境全 ...
- RX学习笔记:JavaScript数组操作
RX学习笔记:JavaScript数组操作 2016-07-03 增删元素 unshift() 在数组开关添加元素 array.unshift("value"); array.un ...
随机推荐
- (转)FS_S5PC100平台上Linux Camera驱动开发详解(一) .
平台linuxstructlinux内核videocam 说明: 理解摄像头驱动需要四个前提: 1)摄像头基本的工作原理和S5PC100集成的Camera控制器的工作原理 ...
- Web设计的速查卡(转)
一.排版 1.VisiBone Font Card Download: GIF 2.常用字体表 (HTML) 3.混合字体 (PDF) 二.单元/尺寸 1.Points 和Pixels近似转换表 (H ...
- java基础知识总结8(数据库篇1)
一. Oracle的安装(windowXP.win7.Linux)和卸载 1.1 Oracle的安装 1.1.1 在WindowsXP.Win7下安装 第一:解压win32_11gR2_databas ...
- mulitp request
1.设置cookie 2.设置header 3.通过requst.getInputStream(); 4.通过request.getsession();
- angularJs上传文件(非form上传)
angular.js:13920 Broken interceptor detected: Config object not supplied in rejection: <input typ ...
- MySQL--执行mysql脚本及其脚本编写
http://www.cnblogs.com/kex1n/archive/2010/03/26/2286504.html
- C++ 访问控制 public, protected, private, 友元
1. 变量属性与继承之间的关系 #include <iostream> using namespace std; class A { public: int x; protected: i ...
- 第三篇:C++ 中的几种初始化
前言 阅读C++教材时,想必你听过复制初始化,直接初始化,值初始化这三个概念吧.笔者本人常将其混淆,遂在此记录下它们的具体含义以便日后查阅. 复制初始化( copy-initialization ) ...
- 码农深耕 - 说说IDisposable
概要 C#提供了方便的垃圾回收机制,使我们几乎不再需要为资源管理费心.可事实上,能被垃圾回收释放掉的只是托管资源,非托管资源还是需要我们手动释放.而为了实现这一目的,C#提供了 IDisposable ...
- java -jar后台启动
nohup java -jar XX.jar >logs.log &