DOM

Document Object Model(文档对象模型)定义了html和xml的文档标准。

DOM 节点树

<html>
<head>
<title>DOM</title>
</head>
<body>
<h1>程序改变世界!</h1>
<a href="#">Hello world!</p>
</body>
</html>

事件

文档或者浏览器窗口中发生的一些特定交互瞬间。我们可以通过侦听器(或者处理程序)来预定事件,以便事件发生的时候执行相应的代码。

onload事件

页面DOM加载完后触发。

window.onload=function()
{
alert("加载完毕");
}

onclick事件

单击触发事件。

<script>
var foo = function(){
alert("点我?");
};
</script>
按钮
<button onclick="foo();">按钮</button>
<script>
var foo = function(){
alert("点我?");
return false;
};
</script> A链接 需要指定返回值,否则会跳转
<a href="http://cnblogs.com" onclick="return foo();"> 博客园 </a>

访问DOM元素

document.getElementById()  根据Id获取节点

<input type="button" value="点击" id="btn"/>
<script>
window.onload=function()
{
var btn = document.getElementById("btn");
btn.onclick=function(){ //为该元素添加点击事件
alert("点我?");
}
}
</script>

document.getElementsByName() 获取指定名称相同的元素集合

<input type="radio" name="sex" checked> 男
<input type="radio" name="sex"> 女
<script>
var sex = document.getElementsByName("sex");
alert(sex.length);
</script>

document.getElementsByTagName() 获取HTML标签名的元素集合

<a href="http://cnblogs.com/">博客园</a>
<a href="http://cnblogs.com/baidawei/">海盗屋</a>
<script>
var htmlA = document.getElementsByTagName("a");
for(var i = 0;i<htmlA.length;i++){
htmlA[i].onclick=function(){
return false; //禁用
}
}
</script>

分组处理getElementsByTagName

<div id="ok">
<a href="http://cnblogs.com/">博客园</a>
<a href="http://cnblogs.com/baidawei/">海盗屋</a>
</div>
<hr> <!--以下可用-->
<a href="http://cnblogs.com/">博客园</a>
<a href="http://cnblogs.com/baidawei/">海盗屋</a>
<script>
var htmlA = ok.getElementsByTagName("a"); //注意元素id.getElementsByTagName
for(var i = 0;i<htmlA.length;i++){
htmlA[i].onclick=function(){
return false; //禁用
}
}
</script>

document.getElementsByClassName() 获取指定类名的元素集合

<div class="c">第一个</div>
<div class="c">第二个</div>
</body>
<script>
var node = document.getElementsByClassName("c")[0];
alert(node.innerHTML);
</script>

文档结构

<div id="ok">
<a href="http://cnblogs.com/">博客园</a>
<a href="http://cnblogs.com/baidawei/">海盗屋</a>
</div>
<script>
var ok = document.getElementById("ok");
document.write(ok.childNodes.length); //该节点下的所有子节点,包含文本节点 5个
document.write(ok.parentNode.nodeName); //该节点的父节点 body
document.write(ok.firstChild.nodeName); //第一个子节点 text
document.write(ok.lastChild.nodeType); //最后一个子节点 3
document.write(ok.nextSibling.nodeName); //下一个兄弟元素 text
document.write(ok.previoursSibling); //上一个兄弟元素
document.write(ok.nodeType); //1 9代表Document节点,1代表Element节点,3代表Text节点,8代表Comment节点,11代表DocumentFragment节点
document.write(ok.nodeValue); //null text节点的文本内容
document.write(ok.nodeName); //div 元素的标签名
</script>

操作节点属性

<div id="ok">
<a href="http://cnblogs.com/">博客园</a>
<a href="http://cnblogs.com/baidawei/">海盗屋</a>
</div>
<script>
var htmlA = document.getElementsByTagName("a");
var c = htmlA[0].getAttribute("href"); //获取属性
document.write(c);
htmlA[0].setAttribute("href","http://www.baidu.com/"); //设置属性
</script>

操作样式

<p>一段测试文字</p>
<script>
//设置样式
var p = document.getElementsByTagName("p")[0];
p.style.color = 'red';
p.style.display = 'inline';
p.style.borderTop = "solid"; //所有css样式border-top 去掉-改大写
</script>

创建节点

document.createElement() 创建元素节点

<div id="container">
</div>
<script>
//创建节点
var container = document.getElementById("container");
//创建元素节点
var span = document.createElement("span");
//设置文本带html innerText不带html
span.innerHTML = "<h1>追加的span</h1>";
//添加属性
span.setAttribute("href","http://cnblogs.com/");
//追加到尾部
container.appendChild(span);
</script>

document.createTextNode() 创建文本节点

<div id="container">
</div>
<script>
var container = document.getElementById("container"); //创建文本节点 无任何标签
var textNode = document.createTextNode("文本");
container.appendChild(textNode);
</script>

插入节点

<ul>
<li>啦啦阿拉</li>
<li>啦啦阿拉</li>
<li>啦啦阿拉</li>
</ul>
<script>
//插入节点
var newItem = document.createElement("li");
newItem.innerHTML = "新插入的";
var list = document.getElementsByTagName("ul")[0];
list.insertBefore(newItem,list.childNodes[0]); //第二个参数插入的位置
</script>

删除节点

<body id="body">
<p>1111111111</p>
<p id="p">22222222</p>
</body>
<script>
var body = document.getElement("body");
var p = document.getElementById("p");
body.removeChild(p);
p.style.display="none"; //一般创建后不会删除 更多的是隐藏
</script>

23、Javascript DOM的更多相关文章

  1. 前端基础:JavaScript DOM对象

    JavaScript DOM对象 通过HTML DOM,可以访问JavaScript HTML文档的所有元素. 一.HTML DOM(文档对象模型) 当网页被加载时,浏览器会创建页面的文档对象模型(D ...

  2. javascript DOM 操作

    在javascript中,经常会需要操作DOM操作,在此记录一下学习到DOM操作的知识. 一.JavaScript DOM 操作 1.1.DOM概念 DOM :Document Object Mode ...

  3. 二、JavaScript语言--JS基础--JavaScript进阶篇--DOM对象 控制HTML元素

    1.认识DOM 文档对象模型DOM(Document Object Model)定义访问和处理HTML文档的标准方法.DOM 将HTML文档呈现为带有元素.属性和文本的树结构(节点树). 先来看看下面 ...

  4. HTML、css、javascript、DOM编程

    HTML.css.javascript.DOM编程 一.Html 1.1html概述 Html就是超文本标记语言的简写,是最基础的网页语言,其代码都是由标签所组成,是通过标签来定义的语言,代码不需要区 ...

  5. Css、javascript、dom(二)

    一.css常用标签及页面布局 1.常用标签 position(定位) z-index(定位多层顺序) background(背景) margin(外边距) padding(内边距) font-size ...

  6. Python自动化 【第十五篇】:CSS、JavaScript 和 Dom介绍

    本节内容 CSS javascript dom CSS position标签 fixed: 固定在页面的某个位置 relative + absolute: 相对定位 opacity:0.5 设置透明度 ...

  7. 6、JavaScript进阶篇③——浏览器对象、Dom对象

    一.浏览器对象 1. window对象 window对象是BOM的核心,window对象指当前的浏览器窗口. window对象方法: 注意:在JavaScript基础篇中,已讲解了部分属性,windo ...

  8. Python自动化运维之23、Dom

    文档对象模型(Document Object Model,DOM)是一种用于HTML和XML文档的编程接口.它给文档提供了一种结构化的表示方法,可以改变文档的内容和呈现方式.最为关心的是,DOM把网页 ...

  9. 浏览器加载渲染HTML、DOM、CSS、 JAVASCRIPT、IMAGE、FLASH、IFRAME、SRC属性等资源的顺序总结

    页面响应加载的顺序:   1.域名解析->加载html->加载js和css->加载图片等其他信息 DOM详细的步骤如下: 解析HTML结构. 加载外部脚本和样式表文件. 解析并执行脚 ...

随机推荐

  1. [Quote]Creating basic Excel workbook with Open XML

    Creating basic Excel workbook with Open XML [Quote from]http://www.codeproject.com/Articles/371203/C ...

  2. Bomb Game

    hdu3622:http://acm.hdu.edu.cn/showproblem.php?pid=3622 题意:你有n次,每次你可以在平面上放置一个点,并且每一次都会有两个位置可以选,每一次只能选 ...

  3. leetcode面试准备:Multiply Strings

    1 题目 Given two numbers represented as strings, return multiplication of the numbers as a string. Not ...

  4. 【HDOJ】1881 毕业bg

    01背包. #include <cstdio> #include <cstring> #include <cstdlib> #define MAXN 1005 ty ...

  5. IP分片和TCP分片 MTU和MSS(转)

    IP分片和TCP分片 MTU和MSS(转) 访问原文:http://blog.csdn.net/keyouan2008/article/details/5843388 1,MTU(Maximum Tr ...

  6. 关于fixed-point

    今天又出现了shader的问题,编译到真机效果就没了,后来仔细还是因为浮点数精度的问题,后来仔细查找了些资料,才发现自己太粗心,没有看清楚 fixed-point 数据类型就乱用,这是个范围在 [-1 ...

  7. css背景图片位置:background的position

    position的两个参数:水平方向的位置,垂直方向的位置----------该位置是指背景图片相对于前景对象的 1.background:url(../image/header.jpg) no-re ...

  8. xgboost在windows上的安装

    xgboost是一个boosting+decision trees的工具包,看微博上各种大牛都说效果很好,于是下载一个,使用了一下,安装步骤如下. 第一步,编译生成xgboost.exe(用于CLI) ...

  9. springMVC能做什么,做j2ee时候要考虑什么

    转载: http://jinnianshilongnian.iteye.com/category/231099 [置顶] 跟我学SpringMVC目录汇总贴.PDF下载.源码下载 博客分类: 跟开涛学 ...

  10. python 2 处理HTTP 请求的包

    httplib httplib: https://docs.python.org/2/library/httplib.html python 的官方文档这样说明: This module define ...