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. java自定义获取星期几、几点、几分。

    /**     * @author 9082046**@qq.com     *     */    public void out_week_hour_minute()    {        lo ...

  2. python爬虫<urlopen error [Errno 10061] >

    在网上看了十几篇文章,都是说的是IE的代理设置,具体是: Tools->Internet Options->Connections->Lan Settings 将代理服务器的小勾勾去 ...

  3. openstacksdk resource2 打印__dict__

    在一个继承resource2的实体里,打印self.__dict__结果是: {'_body': <openstack.resource2._ComponentManager object at ...

  4. SQL UNIQUE Constraint

    SQL UNIQUE Constraint The UNIQUE constraint uniquely identifies each record in a database table. The ...

  5. 理解Loadrunner中的Browser Emulation Simulate

    案例 测试环境描述: 客户端 5台 Windows2000机器.服务器端  20台机器 一台F5(负载均衡设备,提供一个唯一的IP供客户端访问) 客户端绑定Host后,使用域名http://www.* ...

  6. [转]Loadrunner随机生成15位数字串

    Loadrunner随机生成15位数字串 PS:http://www.51testing.com/html/43/6343-19789.html 今天看到一个网友的问题,是想生成一个15位的数字串来进 ...

  7. 【Openwrt】刷

    设定你的电脑ip 为192.168.1.100 网线一头连接lan口,另外一头连接电脑.WAN口不能插线. 按住路由器的qss 键,开启路由器的电,灯灭掉,等6秒左右灯会再次闪几下就松开,用googl ...

  8. Laravel5.1 搭建博客 --文章的增删改查

    教程源于:Laravel学院 继文件上传后呢,咱来搞一搞文章的事情. 1 更改数据表 我们需要改改数据表的结构 因为涉及到重命名列名 所以咱需要引入一个包:Doctrine: composer req ...

  9. 权限模块_使用权限_实现主页面的效果_显示左侧菜单&只显示有权限的菜单项

    权限模块__使用权限__实现主页面的效果 HomeAction.java public class HomeAction extends ActionSupport { public String i ...

  10. Android "Please ensure that adb is correctly located at" 错误

    转自:http://blog.csdn.net/hyx1990/article/details/12681207 遇到问题描述: 运行Android程序控制台输出 [2013-10-13 16:45: ...