本来只想好好写一篇博文,最后弄到好像重构一样了,越做越不满意,先这样吧:)

HTML DOM - JavaScript处理HTML DOM
获取HTML元素
改变HTML元素
增删HTML元素
添加事件处理
获取HTML对象
一些属性
nodeType常量
其他
  不建议使用   +hover显示详情
获取HTML元素+show detail

document.getElementById(id)

document.getElementsByTagName(name)

Object Collections: x.elements[index]+

x为以下元素:document.anchors、document.body、document.documentElement、document.embeds、documen.forms、document.head、document.images、document.links、document.scripts、document.title。只对特定元素,如document.forms的elements只获取表单元素。

document.getElementsByName(name)+

[lte IE 9]将id和name混为一谈,所以要有好习惯,id和name用相同名字

document.allOnly [IE]

document.querySelector()[gte IE 8]

document.querySelectorAll()[gte IE 8]+

不把文本节点算进

document.getElementsByClassName(class)[gte IE 9]+

参数为"*"时返回全部

document.firstElementChild()[gte IE 9]+

不把文本节点算进来

document.lastElementChild()[gte IE 9]+

不把文本节点算进来

document.nextElementSibling()[gte IE 9]+

不把文本节点算进来

document.previousElementSibling()[gte IE 9]+

不把文本节点算进来

document.childElementCount()[gte IE 9]+

不把文本节点算进来,子节点个数

改变HTML元素+show detail

element.innerHTML

element.attributeName

element.setAttribute(attr, value)

element.getAttribute()

element.removeAttribute()

element.style.propertyName

element.innerText+

FF不支持,其他支持,IE引入,为空时返回""

element.textContent+

[lte IE 8]不支持,其他支持,FF引入,注意,相比innerText,这个会保留前后空格,如换行等造成的空格,为空时返回undefined

增删HTML元素+show detail

document.createElement()

document.createComment()

document.createAttribute()

document.createTextNode()

document.createDocumentFragment()

document.removeChild()+

返回被删除元素

document.appendChild()

document.replaceChild()+

返回被替换元素

parentElement.insertBefore(new, old)

cloneNode()+

?

hasChildNodes()

document.write()+

注意文档加载完毕后使用会重写整个文档

添加事件处理+show detail

element.onclick = function(){ code }

element.addEventListener("click", funcName[, useCapture])+

useCapture设置使用bubbleing(true)或者capturing(false),前者事件触发由里到外,后者则由外到里,如果要在方法里传参数需要这样定义:function(){ funcName(a, b); },笔者试过若直接写funcName(a, b),加载时这个方法会执行一次的,相比onclick=的方法,这个可以给一个事件定义多个监听器 - [gte IE 9]

element.removeEventListener(xx,funcName)[gte IE 9]

element.attachEvent(xx, funcName)Only [IE]+

注意要带"on"

element.detachEvent(xx, funcName)Only [IE]+

注意要带"on"

获取HTML对象+show detail

Level 1:

document.anchors

document.applets

document.body

document.cookie

document.domain

document.forms

document.images

document.links - area/ a带href

document.referrer

document.title

document.URL


Level 3:

document.baseURI

document.doctype

document.documentElement - html

document.documentMode

document.documentURI

document.domConfig

document.embeds

document.head

document.implementation

document.inputEncoding

document.lastModified

document.readyState

document.scripts

document.strictErrorChecking

document.location - 与window.location指向同一个Location对象

一些属性+show detail

attributes+

如该节点为Element,以NameNodeMap形式返回该元素属性

nodeName

nodeType

nodeValue

parentNode

childNodes+

以NodeList形式返回

firstChild

lastChild

nextSibling

previousSibling

NodeType常量+show detail

Node.ELEMENT_NODE - 1

Node.TEXT_NODE - 3

Node.DOCUMENT_NODE - 9

Node.DOCUMENT_FRAGMENT_NODE - 11

Node.ATTRIBUTE_NODE - 2

Node.COMMENT_NODE - 8

  1. 一个Node不包括它里面的文字,若要获取文字:innerHTML或者firstChild.nodeValue

  2. TextNode的NodeValue是它本身

  3. nodeName约等于tagName,特别地:文字#text,#document,attributeNode

  4. nodeType:Element(1),Attribute(2),Text(3),Comment(8),Document(9)

  5. 由于历史原因document.id/ document.forms[images/links].id可以获取元素

  6. NodeList和ObjectCollections具有实时性,不会获取一次后就固定不动的

  7. NodeList是个Array-like对象,可用NodeList.length获取个数

  8. document object is your web page.

  9. W3C DOM 包括 Core DOM,XML DOM,HTML DOM

  10. ownerDocument - ?

  11. 因为有些CSS属性和JS的保留字冲突,各种浏览器有不同的获取方式,例如:style.styleFloat - [lte IE 8],style.cssFloat - [gte IE 9]和FF等

  12. getAtribute("className")[lte IE 7]

    getAttribute("class") - FF

  13. getAttribute("htmlFor")[lte IE 7]

    getAttribute("for") - FF

一些题外小笔记:
IE支持[]和()访问,FF支持[]访问,所以大家都用[]访问NodeList中的元素
FF不支持给元素宽高直接赋数字值,导致大家在赋值给元素宽高时都要用这样的形式width=h+"px"
[lte IE 8]getYear取到的是实际年份,现代浏览器获取到的是年份减去1990

JavaScript处理HTML DOM的更多相关文章

  1. 借助JavaScript中的Dom属性改变Html中Table边框的颜色

    借助JavaScript中的Dom属性改变Html中Table边框的颜色 -------------------- <html> <head> <title>我是页 ...

  2. JavaScript 节点操作Dom属性和方法(转)

    JavaScript 节点操作Dom属性和方法   一些常用的dom属性和方法,列出来作为手册用. 属性:   1.Attributes 存储节点的属性列表(只读)   2.childNodes 存储 ...

  3. javascript系列之DOM(一)

    原文:javascript系列之DOM(一) DOM(document object moudle),文档对象模型.它是一个中立于语言的应用程序接口(API),允许程序访问并修改文档的结构,内容和样式 ...

  4. javascript系列之DOM(二)

    原文:javascript系列之DOM(二) 原生DOM扩展 我们接着第一部分来说,上文提到了两种常规的DOM操作:创建文档片段和遍历元素节点.我们知道那些雨后春笋般的库,有很大一部分工作就是提供了一 ...

  5. javascript系列之DOM(三)---事件

    原文:javascript系列之DOM(三)---事件 事件是javascript跳动的心脏,是DOM所有成分结合的万金油.当我们在WEB 上进行某些交互时,事件也就发生了.点击某些内容,鼠标经过特定 ...

  6. JQuery $ $.extend(),$.fn和$.fn.extend javaScript对象、DOM对象和jQuery对象及转换 工具方法(utility)

    一.为什么jquery前面要写$ Javascript没有package的概念,而作者又希望所有jQuery相关的API都能通过一个全局性的对象来容纳. 名为jQuery的全局变量就是这样一个对象,不 ...

  7. javascript中获取dom元素的高度和宽度

    javascript中获取dom元素高度和宽度的方法如下: 网页可见区域宽: document.body.clientWidth网页可见区域高: document.body.clientHeight网 ...

  8. JavaScript和HTML DOM的区别与联系

    JavaScript和HTML DOM的区别与联系 区别: javascript JavaScript 是因特网上最流行的浏览器脚本语言.很容易使用!你一定会喜欢它的! JavaScript 被数百万 ...

  9. console.time 简单分析javascript动态加入Dom节点的性能

    Bullshit 本来想每天都更新下博客的,可是近期要考试,还有就是自己还是停留在暗自窃喜中吧(这样的想法要改变). 事实上近期总在想.自己要怎么去管理自己的数据,每天的生活都是对自己的数据的增删查改 ...

随机推荐

  1. Windows上Python3.5安装Scrapy(lxml)

    常用网址: Python 3.5: https://www.python.org/downloads/ Wheel文件:http://www.lfd.uci.edu/~gohlke/pythonlib ...

  2. [汇编语言]-第五章[bx]和loop指令

    1- [bx]和内存单元的描述 [0]表示内存单元, 他的偏移地址为0 mov ax,[0] 将一个内存单元的内容送入到ax.这个内存单元的长度为2字节(字单元),存放一个字,偏移地址为0,段地址在d ...

  3. SQL Server 创建全文索引

    背景知识: 全文目录是全文索引是容器.所以在创建全文索引前要有全文目录. 第一步: 创建全文目录: create fulltext catalog catalog_name [on filegroup ...

  4. 用JavaScript将数字转换为大写金额

    var digitUppercase = function(n) { var fraction = ['角', '分']; var digit = [ '零', '壹', '贰', '叁', '肆', ...

  5. webview相关链接

    http://tech.it168.com/a2011/0517/1191/000001191561_2.shtml http://www.eoeandroid.com/thread-272495-1 ...

  6. PowerDesigner15在生成SQL时报错Generation aborted due to errors detected during the verification of the mod

    转载: http://blog.csdn.net/successful555/article/details/7582154 PowerDesigner中如何设置字符编码为GBK或者GB2312 ht ...

  7. Qt之QTemporaryFile(文件名唯一,且可以自动删除)

    简述 QTemporaryFile类是操作临时文件的I/O设备. QTemporaryFile用于安全地创建一个独一无二的临时文件.临时文件通过调用open()来创建,并且名称是唯一的(即:保证不覆盖 ...

  8. [Leetcode][Python]46: Permutations

    # -*- coding: utf8 -*-'''__author__ = 'dabay.wang@gmail.com' 46: Permutationshttps://leetcode.com/pr ...

  9. linux之SQL语句简明教程---TRIM

    SQL 中的 TRIM 函数是用来移除掉一个字串中的字头或字尾.最常见的用途是移除字首或字尾的空白.这个函数在不同的资料库中有不同的名称: MySQL: TRIM( ), RTRIM( ), LTRI ...

  10. python模块目录文件后续

    1,新增PythonModule加载path Ruiy tip(关于python list[]数据库类型特殊你懂的!append(""),extend([""] ...