《JavaScript DOM 编程艺术》读书笔记之DOM基础


Posted in Javascript onJanuary 09, 2015

DOM
      
      DOM:文档对象模型;

节点

       元素节点:DOM的原子是元素节点。<body>、<p>、<ul>之类的元素。元素可以包含其他的元素。没有被包含在其他元素里的唯一元素是<html>元素

       文本节点:在XHTML文档里,文本节点总是被包含在元素节点的内部。

       属性节点:属性节点用来对元素做出更具体的描述。例如,几乎每个元素都有一个title属性,而我们可以利用这个属性对包含在元素里的东西作出准确的描述:

       <p title="a gentle reminder">Don't forget to buy this stuff.</p>

       在DOM中,title="a gentle reminder"是一个属性节点。

CSS

     获取元素
      getElementById, getElementsByTagName, getElementsByClassName三种可以获取元素节点的方法。

      getElementsByTagName允许把一个通配符作为它的参数,而这意味着文档里的每个元素都将在这个函数所返回的数组里占有一席之地。通配符(“*”)必须在引号里,这是为了和乘法操作有所区别。

      还可以把getElementById和getElementsByTagName结合起来运用。如下所示:

      var shopping = document.getElementById("purchase");

      var items = shopping.getElementsByTagName("*");

      这样就可以得到id属性值为purchase的元素包含着多少个元素。

      getElementsByClassName方法只有较新的浏览器才支持。为了弥补这一点,DOM脚本程序员需要使用已有的DOM方法来实现自己的getElementsByClassName。而多数情况下,他们的实现过程都与下面这个getElementsByClassName大致相似:

      function getElementsByClassName(node, classname){

        if(node.getElementsByClassName){

          return node.getElementsByClassName(classname);

        }else{

          var results = new Array();

          var elems = node.getElementsByTagName("*");

          for(var i=0;i<elems.length;i++){

            if(elems[i].className.indexOf(classname) != -1){

              results[results.length] = elems[i];

            }

         }

         return results;

      }

   }

   这个getElementsByClassName函数接受两个参数,第一个node表示DOM树中的搜素起点,第二个classname就是要搜索的类名了。

获取和设置属性

     getAttribute是一个函数,它只有一个参数——你打算查询的属性的名字:

     object.getAttribute(attribute)

     setAttribute()允许我们对属性节点的值做出修改。通过setAttribute对文档作出修改后,在通过浏览器的view source(查看源代码)选项去查看文档的源代码时看到的仍将是改变前的属性值,也就是说,setAttribute做出的修改不会反映在文档本身的源代码里。这种“表里不一”的现象源自DOM的工作模式:先加载文档的静态内容,再动态刷新,动态刷新不影响文档的静态内容。这正是DOM的真正威力:对页面内容进行刷新却不需要在浏览器里刷新页面。

Javascript 相关文章推荐
jQuery使用手册之二 DOM操作
Mar 24 Javascript
js cookies 常见网页木马挂马代码 24小时只加载一次
Apr 13 Javascript
JavaScript中的数值范围介绍
Dec 29 Javascript
Javascript中的高阶函数介绍
Mar 15 Javascript
javascript格式化指定日期对象的方法
Apr 21 Javascript
详解angularJs中自定义directive的数据交互
Jan 13 Javascript
微信小程序mpvue点击按钮获取button值的方法
May 29 Javascript
layer弹出层倒计时关闭的实现方法
Sep 27 Javascript
Angular5整合富文本编辑器TinyMCE的方法(汉化+上传)
May 26 Javascript
vue单文件组件无法获取$refs的问题
Jun 24 Javascript
JavaScript 防篡改对象的用法示例
Apr 24 Javascript
JavaScript中的LHS和RHS分析详情
Apr 06 Javascript
《JavaScript DOM 编程艺术》读书笔记之JavaScript 语法
Jan 09 #Javascript
《JavaScript DOM 编程艺术》读书笔记之JavaScript 简史
Jan 09 #Javascript
javascript获取四位数字或者字母的随机数
Jan 09 #Javascript
JS JQUERY实现滚动条自动滚到底的方法
Jan 09 #Javascript
JavaScript Math.ceil 方法(对数值向上取整)
Jan 09 #Javascript
封装好的js判断操作系统与浏览器代码分享
Jan 09 #Javascript
JavaScript Math.floor方法(对数值向下取整)
Jan 09 #Javascript
You might like
PHP面向对象的使用教程 简单数据库连接
2006/11/25 PHP
php程序的国际化实现方法(利用gettext)
2011/08/14 PHP
php获取远程文件内容的函数
2015/11/02 PHP
Zend Framework常用校验器详解
2016/12/09 PHP
php实现基于pdo的事务处理方法示例
2017/07/21 PHP
JavaScript Event学习补遗 addEventSimple
2010/02/11 Javascript
Html中JS脚本执行顺序简单举例说明
2010/06/19 Javascript
超棒的响应式布局jQuery插件Freetile.js
2014/11/17 Javascript
jquery插件jquery.confirm弹出确认消息
2015/12/22 Javascript
JS去掉字符串前后空格或去掉所有空格的用法
2017/03/25 Javascript
angular5 httpclient的示例实战
2018/03/12 Javascript
Node.js API详解之 querystring用法实例分析
2020/04/29 Javascript
jQuery实现的解析本地 XML 文档操作示例
2020/04/30 jQuery
Vue js with语句原理及用法解析
2020/09/03 Javascript
keep-alive保持组件状态的方法
2020/12/02 Javascript
[01:29:31]VP VS VG Supermajor小组赛胜者组第二轮 BO3第一场 6.2
2018/06/03 DOTA
python实现关键词提取的示例讲解
2018/04/28 Python
python实现定时提取实时日志程序
2018/06/22 Python
Flask框架Flask-Principal基本用法实例分析
2018/07/23 Python
python 实现对文件夹中的图像连续重命名方法
2018/10/25 Python
Python3.5面向对象程序设计之类的继承和多态详解
2019/04/24 Python
Pandas 重塑(stack)和轴向旋转(pivot)的实现
2019/07/22 Python
详解python 利用echarts画地图(热力图)(世界地图,省市地图,区县地图)
2019/08/06 Python
Django视图扩展类知识点详解
2019/10/25 Python
python pptx复制指定页的ppt教程
2020/02/14 Python
基于Python fminunc 的替代方法
2020/02/29 Python
Python如何在单元测试中给对象打补丁
2020/08/03 Python
如何向scrapy中的spider传递参数的几种方法
2020/11/18 Python
开发人员所需要知道的HTML5性能分析面面观
2012/07/05 HTML / CSS
物业门卫岗位职责
2013/12/28 职场文书
小学家长评语大全
2014/04/16 职场文书
新闻编辑专业自荐信
2014/07/02 职场文书
表扬稿格式范文
2015/01/16 职场文书
中学校园广播稿
2015/08/18 职场文书
微信早安问候语
2015/11/10 职场文书
毕业欢送晚会主持词
2019/06/25 职场文书