一.什么是DOM

  DOM是用来操作页面,如div的获取,修改样式

二.DOM节点

  标签(css)=元素(js)=节点(DOM)

1.子节点 childNodes 仅算父元素下的第一层

<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body>
<ul id="ul1">
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
</ul>
<script type="text/javascript">
window.onload=function() {
var oUl=document.getElementById('ul1');
alert(oUl.childNodes.length);
for (var i = 0; i < oUl.childNodes.length; i++) {
alert(oUl.childNodes[i].nodeType);
if(oUl.childNodes[i].nodeType==1)
{
oUl.childNodes[i].style.background='red';
}
}
}//算节点个数,判断节点类型,改变节点背景颜色
</script>
</body>
</html>

引出问题:

节点类型 节点分为文本节点(即为空节点) 与元素节点(<></>)

nodeType  nodeType=3-->文本节点   nodeType=1-->元素节点

在ie6~8中忽略文本节点,而ie9、谷歌等不会忽略文本节点

解决兼容性问题可用if--else

也可直接用children 代码如下

<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body>
<ul id="ul1">
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
</ul>
<script type="text/javascript">
window.onload=function() {
var oUl=document.getElementById('ul1');
alert(oUl.children.length);
}
</script>
</body>
</html>//算节点个数

2.父节点 parentNode

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title></title>
</head>
<body>
<ul id="ul1">
<li>fgergerg<a href="#">隐藏</a></li>
<li>weete<a href="#">隐藏</a></li>
<li>rrtret<a href="#">隐藏</a></li>
<li>sergh<a href="#">隐藏</a></li>
<li>ehkuyr<a href="#">隐藏</a></li>
</ul>
<script type="text/javascript">
window.onload=function() {
var aA=document.getElementsByTagName('a');

for (var i = 0; i < aA.length; i++) {
aA[i].onclick=function()
{
this.parentNode.style.display='none';
}
}
}
</script>
</body>
</html>//隐藏<li>

引出:offsetParent--->用来判断某个元素定位的父级

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title></title>
<style type="text/css">
#div1{
background-color: blue;width: 200px;height: 200px;margin:100px;/*position: relative;*/
}
#div2{
background-color: red;width: 100px;height: 100px;position: absolute;left: 50px;top: 50px;
}
</style>
</head>
<body>
<div id="div1">
<div id="div2"></div>
</div>
<script type="text/javascript">
window.onload=function() {
var oDiv2=document.getElementById('div2');
alert(oDiv2.offsetParent);
}
</script>
</body>
</html>//判断div2所用来定位的父元素

3.首尾节点,兄弟节点

有兼容性

firstChild   lastChild首尾

nextSibling   previousSibling兄弟节点

解决方法

firstElementChild   lastElementChild首尾

nextElementSibling   previousElementSibling兄弟节点

4.DOM获取元素

获取getAttribute(名称)

设置setAttribute(‘属性名’,值)

删除removeAttribute(名称)

5.用className选择元素

特征:可批量,有选择性,页面发生变化不会出错

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title></title>
</head>
<body>
<ul id="ul1">
<li class="box"></li>
<li class="box"></li>
<li></li>
<li></li>
<li class="box"></li>
</ul>
<script type="text/javascript">
function getByClass(oParent,sClass)
{
var aResult=[];
var aEle=oParent.getElementsByTagName('*');

for (var i = 0; i < aEle.length; i++) {
if(aEle[i].className==sClass)
{
aResult.push(aEle[i]);
}
}
return aResult;
}
window.onload=function () {
var oUl=document.getElementById('ul1');
var aBox=getByClass(oUl,'box');

for (var i = 0; i < aBox.length; i++) {
aBox[i].style.background='red';
}
}
</script>
</body>
</html>

javascript之DOM篇一的更多相关文章

  1. javascript之DOM篇二(操作)

    一.创建DOM元素 createElement:document.createElement(' 所要创建的元素标签名'): <!DOCTYPE html><html>< ...

  2. javascript 之DOM篇

    要怎么样的开场白才能使我有力气再更新学习进度呢?啊啊啊啊啊,表示好累啊~~~默念“棒棒棒,我最棒~”召唤精气神开总结敲字咯.哈哈哈. --------------------------------- ...

  3. 前端开发之JavaScript HTML DOM理论篇一

    主要内容: 1.DOM简介 2.DOM 节点 3.DOM 方法和属性 4.DOM 访问和修改 一.DOM简介 1.什么是 DOM? DOM 是 W3C(万维网联盟)的标准. DOM 定义了访问 HTM ...

  4. Javascript中DOM技术的的简单学习

    第十四课DOM技术概述1:DOM概述 文档对象模型DOM(Document Object Model)定义访问和处理HTML文档的标准方法.DOM 将HTML文档呈现为带有元素.属性和文本的树结构(节 ...

  5. 第十五章:Python の Web开发基础 (二) JavaScript与DOM

    本課主題 JavaScript 介绍 DOM 介绍 JavaScript 介绍 JavaScript 是一门编程语言,它可以让网页动起来的,JavaScript 的变量有两种,一个是局部变量:一个是全 ...

  6. JavaScript之DOM创建节点

    上几篇文章中我们罗列了一些获取HTML页面DOM对象的方法,当我们获取到了这些对象之后,下一步将对这些对象进行更改,在适当的时候进行对象各属性的修改就形成了我们平时看到的动态效果.具体js中可以修改D ...

  7. JavaScript之DOM对象的获取

    之前我们讲过JavaScript之DOM对象获取的两篇文章,本文是该系列文章之三,点击回顾上两篇文章能更好地理解本文.<JavaScript之DOM对象的获取(一)>: <JavaS ...

  8. JavaScript与DOM(上)

    本来像自己写一篇的...结果看到了Tom uncle的这篇..总结的确实很赞,其他文章也非常好推荐 转载自:http://www.cnblogs.com/TomXu/archive/2011/12/1 ...

  9. JavaScript性能优化篇js优化

    JavaScript性能优化篇js优化   随着Ajax越来越普遍,Ajax引用的规模越来越大,Javascript代码的性能越来越显得重要,我想这就是一个很典型的例子,上面那段代码因为会被频繁使用, ...

随机推荐

  1. mac下 codeigniter在apache下去掉index.php

    原文:http://blog.csdn.net/tutngfei1129287460/article/details/18359191 1.要修改Apache 的配置文件,让Apache支持rewri ...

  2. IE7下总提示" 缺少标识符、字符串或数字"

    用Jquery easyUI ,IE7下列表显示不了,总提示缺少标识符.字符串或数字.而google,maxthon,firefox,IE10等却没有问题. 原因是Json末尾多了个逗号.IE7下js ...

  3. 深入浅出设计模式——单例模式(Singleton Pattern)

    模式动机对于系统中的某些类来说,只有一个实例很重要,例如,一个系统中可以存在多个打印任务,但是只能有一个正在工作的任务:一个系统只能有一个窗口管理器或文件系统:一个系统只能有一个计时工具或ID(序号) ...

  4. SQL LOADER 的用法 TXT文件导入非常之快

    前提,需要本地安装ORACLE 客户端 控制文件 cms.ctl load dataCHARACTERSET UTF8infile 'oracle.txt'APPEND INTO TABLE JR f ...

  5. 【hdu5973】高精度威佐夫博弈

    题意:输入a, b表示两堆石头数目,威佐夫博弈,问:先手胜负? a, b <= 1e100. 高精度.当a > b时, a = (a-b)*黄金分割比 时是先手败状态.因为a, b < ...

  6. [css] 页面重构“鑫三无准则” 之“无宽度”准则

    原创文章,转载请注明来自张鑫旭-鑫空间-鑫生活[http://www.zhangxinxu.com]本文地址:http://www.zhangxinxu.com/wordpress/?p=1152 一 ...

  7. Hbase的WAL在RegionServer基本调用过程

    版权声明:本文由熊训德原创文章,转载请注明出处: 文章原文链接:https://www.qcloud.com/community/article/221 来源:腾云阁 https://www.qclo ...

  8. Caché数据库学习笔记(1)

    目录: Caché的概念和基础知识 Caché数据库的安装 创建命名空间(namespace)和数据库(database) Documentation的使用 ===================== ...

  9. attr和prop

    <div class="content-item active"> <table class="table"> <thead> ...

  10. Oracle job定时器的执行时间间隔学习汇总

      Oracle job 定时器的执行时间间隔也是定时器job 的关键设置,在这一设置上,开始还没掌握,总是不知道怎么写,现总结如下,其实主要是使用了TRUNC.NEXT_DAY .ADD_MONTH ...