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. RESTful风格的Web服务框架:Swagger

    Swagger与SpringMVC项目整合 为了方便的管理项目中API接口,在网上找了好多关于API接口管理的资料,感觉目前最流行的莫过于Swagger了,功能强大,UI界面漂亮,并且支持在线测试等等 ...

  2. 关于谷歌android 4.3 ble问题

    随着BLE的逐渐壮大,越来越多的厂商开始支持BLE,在未来的一年里应该会慢慢普及,谷歌android4.3已经支持了自己的nexus4和uexus7 2013手机了,也就是说如果厂商采用谷歌已经实现d ...

  3. 关于IN-LIST迭代

    IN-list iterator (IN-list迭代) 字段有索引,in里有多少个值就执行多少次索引扫描.不管值是否在字段里存在~ SQL> create table t1 as select ...

  4. Bluetooth LE(低功耗蓝牙) - 第一部分

    前言 在写这篇文章的时候,谷歌刚刚发布了Android Wear ,摩托罗拉也发布了 Moto 360 智能手表.Android Wear的API还是相当基本的,是很好的文档材料,而且还会不断的更新, ...

  5. 【HDOJ】3205 Factorization

    题意很简单.就是求x^k-1的因式分解.显然x-1必然是其中之一(x=1, x^k-1=0).假设k=mp. 则x^k = (x^p)^m, 同理x^p-1必然是其中之一,即x^p的所有因式一定是x^ ...

  6. git cherry-pick 从其他分支检出指定的commit到当前分支

    http://think-like-a-git.net/sections/rebase-from-the-ground-up/cherry-picking-explained.html Git's o ...

  7. Qt新建项目No valid kits found解决思路

    Qt新建项目No valid kits found解决思路 第一次用Qt Creator创建Project时,进入Kit Selection窗口后,会提示No Valid kits found. Pl ...

  8. Say To ME

    每天都要有计划,无计划不生活. 计划包括天计划和月计划. 每个月应该有月主题. 避免大概,可能,貌似,等不肯定的词语.增强自信心,增强给别人的自信心. 不熬夜,早睡. 多运动,每周应该至少出门一次,运 ...

  9. Unity3d shader之卡通着色Toon Shading

    卡通着色的目的是为了让被着色物体显得过渡的不那么好,明暗交界线很明显,等等卡通风格的一系列特征, 也叫Non-photorealisticrendering非真实渲染 重点要做到两点: 1.    描 ...

  10. [iOS] iOS系统中各种设置项的url链接

    在代码中调用如下代码:NSURL*url=[NSURL URLWithString:@"prefs:root=WIFI"];[[UIApplication sharedApplic ...