javascript DOM相关总结

DOM是客户端javascript最重要的部分。包括以下几块内容:

  • DOM的节点类型
  • DOM的对象属性
  • DOM的节点操作:增、删、改、查
  • DOM事件

DOM节点类型:

  • 文档:文档本身 document。
  • 元素:标签 。如 <body></body>、<p></p>
  • 属性:标签中的属性。如 <form method="" action="">中的method、action
  • 文本: 页面中的文本。如<p>text</p>中的文本text
  • 注释:/* zhushi */。

常用DOM的对象属性/方法

  • getAttribute/setAttribute 可以设置dom对象的属性,支持IE 8+浏览器。通过dom.attributes.nodeValue同样可以获取属性的值,兼容性未知
  • hasAttribute("attr")  判断是否存在attr属性
  • removeAttribute()/ removeAttributeNode(attrNode) 删除指定属性。removeAttributNode会返回删除的属性节点。
  • hasAttributes() 判断是否存在属性
  • id 当前节点id
  • className 当前节点class
  • clientWidth/clientHeight 可视区域宽/高

增删改查:

  • parentNode 可以获取父节点
  • firstChild/lastChild/childNodes 可以获取子节点,childNodes获取nodeList。
  • nextSibling/previousSibling获取 下一个/前一个 兄弟节点
  • appendChild(DOM object)
  • cloneNode(deep)  // deep:true/false 。判断是否深度克隆
  • removeChild()
  • replaceChild()
  • ele.getElementById("id")
  • ele.getElementsByTagName("tagName")
  • ele.getElementsByName("name")
  • ele.getElementsByClassName("className")   // ie9+
  • ele.querySelect("css选择器")          // ie8+
  • ele.querySelectAll("css选择器")

tips:

  • 一个元素的name和id最好不同。getElementById 和 getElementsByName在部分浏览器中会同时访问id和name。
  • querySelect/querySelectAll 与 jQuery选择器的差别:
    1. querySelect/querySelectAll是查找所有符合当前条件的节点,再根据调用元素进行筛选。
    2. jQuery是元素的逐级查找。
  • querySelectorAll 返回的是一个static node list,而getElementsBy 返回的是一个 live node list。下面的demo 2将导致无限循环
  • var ul = document.getElementsByTagName("ul")[0];
    
    // demo1
    var list = ul.querySelectAll("li");
    for(var i = 0; i < list.length; i++){
        var li = document.createElement("li");
        ul.appendChild(li);
    }
    
    // demo2
    var list = ul.getElementsByTagName("li");
    for(var i = 0; i < list.length; i++){
        var li = document.createElement("li");
        ul.appendChild(li)
    }
    

      

事件:

1. dom 0级事件(dom.onclick)只能绑定一次,而dom 2级事件(addEventListener)可以绑定多次

2. 当同一类型事件绑定多次时,addEventListener按照添加顺序执行。attachEvent按添加顺序倒序执行

3. 在addEventListner中,通过event对象拥有以下属性、方法

  • target
  • type
  • stopPropagation()
  • preventDefault()

4. 在attachEvent中,event对象拥有以下属性、方法 

  • srcElement
  • type
  • cancelBubble(默认为false,设置为true可以取消冒泡)
  • returnValue(默认为true,设置为false可以阻止默认行为)

夸浏览器的事件处理程序

var EventUtil = {

    addHandler: function(element, type, handler) {
        if (element.addEventListener) {
            element.addEventListener(type, handler, false)

        } else if (element.attachEvent) {
            element.attachEvent(‘on‘ + type, handler)

        } else {
            element[‘on‘ + type] = handler
        }
    },

    removeHandler: function(element, type, handler) {
        if (element.removeEventListener) {
            element.removeEventListener(type, handler, false)

        } else if (element.detachEvent) {
            element.detachEvent(‘on‘ + type, hander)

        } else {
            element[‘on‘ + type] = null
        }
    }
}

  

时间: 2024-08-09 20:44:25

javascript DOM相关总结的相关文章

Javascript Dom 相关知识整理

一.选择器 document.getElementById document.getElementsByTagName document.getElementsByClassName(ie9) document.getElementsByName document.querySelector document.querySelectorAll querySelector和getElementBy系列的不同之处: 1. querySelector 属于W3C的Selectors API 规范,ge

【读书札记】《JavaScript DOM编程指南》

对于Javascript的认识是来自于2011年夏天去实训基地做的一个网页项目,当时认为JavaScript是不是Java的一个派别语言什么的,老师那时候教我们调用了一些Javascript的方法.当时对这个语言的最初的印象就是会调用方法大致能懂就行了,没有深究.直到今年年初去面试几家企业,问我会不会使用Javascript,我说就调调几个方法就好了~   当时瞬间就直到无地自容了.于是将这本JavaScript的电子书看了下,写下相关的读书札记,也希望能让和我有着对Javascript误解的人

javascript DOM 操作基础知识小结

经常用到javascript对dom,喜欢这方便的朋友也很多,要想更好的对dom进行操作,这些基础一定要知道的. DOM添加元素,使用节点属性 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.

JavaScript对于DOM的常见操作——《JavaScript DOM编程艺术》读书总结

读完一本书一定要将收获进行整理沉淀,不然相当于白读.<JavaScript DOM编程艺术>的确是一本JavaScript好的入门书,简短精炼,现在就用一篇文章对本书中的一些知识要点进行总结. 首先要明白的一件事就是什么是DOM.DOM即文档对象模型(Document Object Model),document指的就是网页文档,而Object,在JavaScript中共有三种对象,分别是用户定义对象.内建对象(Array.Date和Math等)以及宿主对象(由浏览器提供的对象).而Model

javascript DOM操作HTML文档

文档对象模型(DOM)是W3C为解决浏览器混战时代不同浏览器环境之间的差别而制定的模型标准.W3C将文档对象模型定义为:是一个能让程序和脚本动态 访问和更新文档内容.结构和样式的语言平台.提供了标准的HTML和XML对象集,并有一个标准接口来访问并操作他们,即任何一个 html 元素可以使用 JavaScript DOM 动态访问和控制. 1. DOM概述 文档对象模型定义了JavaScript可以进行操作的浏览器,描述了文档对象的逻辑结构及各个功能组件的标准接口.主要包括以下内容: 核心Jav

Javascript Dom编程艺术(第2版)读书笔记

Javascript Dom编程艺术这本书我看的是第2版的,真心觉得这本书不错,它将DOM编程的一些基本原则,及如何让Javascript代码在浏览器不支持的情况下,或浏览器支持了Javascript但用户禁用它的情况下做到平衡退化,让最基本的操作仍能顺利完成,以及如何让结构与样式分享做到真正的渐近增强叙述得很清楚,也很容易理解接受.我也是看了这本书之后,才对代码优化,结构,行为,样式有了进一步的加深理解. Javascript Dom编程艺术(第2版)读书笔记,布布扣,bubuko.com

《JavaScript+DOM变成艺术》的摘要(二)

//DOM: //对象是一种独立的数据集合,与某个特定对象相关联的变量被称为这个对象的属性,通过某个特定对象可以为之调用的函数被称为这个对象的方法 // //4个非常实用的DOM方法: //检索特定元素节点的方法: //document.getElementById:与document相关联的函数,在脚本代码里,函数后面必须跟有一组圆括号 //document.getElementsByTagName:返回的是一个数组 //,setAttribute,getAttribute alert(doc

JavaScript DOM编程艺术第一章:JavaScript简史

本系列的博客是由本人在阅读<JavaScript DOM编程艺术>一书过程中做的总结.前面的偏理论部分都是书中原话,觉得有必要记录下来,方便自己翻阅,也希望能为读到本博客的人提供一些帮助,所以 如果您也看过这本书,希望不要喷小的"抄袭",其实我也懒得敲这些文字也想简单粗暴地上代码,但是只有实践没有理论不容易自己理解,为避免误导,该"抄"的地方还是要"抄"的,哈哈~~ 一.JavaScript的起源 JavaScript是Netscap

前端学习系列之JavaScript DOM

JavaScript DOM简介 介绍 文件对象模型(Document Object Model,简称DOM),是W3C组织推荐的处理可扩展标志语言的标准编程接口.DOM编程: DOM 是关于如何获取.修改.添加或删除 HTML 元素的标准 HTML DOM节点树 通过 HTML DOM,树中的所有节点均可通过 JavaScript 进行访问.所有 HTML 元素(节点)均可被修改,也可以创建或删除节点 理解几个概念,html标签没有父辈,没有兄弟,所以html标签为根标签.head标签是htm