JavaScript DOM知识 (一)

特性、方法 类型、返回类型 说明
nodeName String 节点的名字;根据节点类型而定义
nodeValue String 节点的值;根据节点的类型而定义
nodeType Number 节点的类型常量值之一
ownerDocument Document 返回元素的根节点
fristChild Node 指向在childNodes列表的第一个节点
lastChild Node 指向在chilidNodes列表的最后一个节点
ChildNodes NodeList 所有子节点的列表
previousSibling Node 返回选定节点的上一个同级节点,若没有返回null
nextSibling Node 返回选定节点的下一个同级节点,若没有返回null
hasChildNodes() Boolean 返回当前元素是否还有子节点
appendChild(node) node 将node添加到childNodes的末尾
removeChild(node) node 从childNodes中删除node
replaceChild(new,old) Node 将childNodes中的old替换成new
insertBefore Node 在已有子节点之前插入新的节点

2、nodeType返回的节点类型

---元素节点返回1

---属性节点返回2

---文本节点返回3

3、innerHTML 和 nodeValue

对于文本节点,nodeValue 属性包含文本;

对于属性节点,nodeValue 属性包含属性值;

    nodeValue 属性对于文档节点和元素节点是不可用的。

两者区别:

box.childNodes[0].nodeValue = ‘<strong>abc</strong>‘;  //结果为: <strong>abc</strong>
box.innerHTML = ‘<strong>abc</strong>‘; //结果为: abc
4、tagName
document.getElementByTagName(tagName):返回一个数组,包含对这些结点的引用

getElementsByTagName()方法将返回一个对象数组 HTMLCollection(NodeList),这个数组保存着所有相同元素名的节点列表。

document.getElementsByTagName(‘*‘);//获取所有元素

PS:IE 浏览器在使用通配符的时候,会把文档最开始的 html 的规范声明当作第一个元素节点。

document.getElementsByTagName(‘li‘);//获取所有 li 元素,返回数组
document.getElementsByTagName(‘li‘)[0];//获取第一个 li 元素,HTMLLIElement
document.getElementsByTagName(‘li‘).item(0);//获取第一个 li 元素,HTMLLIElement
document.getElementsByTagName(‘li‘).length;//获取所有 li 元素的数目
5、节点的绝对引用:
返回文档的根节点:document.documentElement
返回当前文档中被击活的标签节点:document.activeElement
返回鼠标移出的源节点:event.fromElement
返回鼠标移入的源节点:event.toElement
返回激活事件的源节点:event.srcElement
6、节点的相对引用:(设当前对节点为node)
返回父节点:node.parentNode || node.parentElement(IE)
返回子节点集合(包含文本节点及标签节点):node.childNodes
返回子标签节点集合:node.children
返回子文本节点集合:node.textNodes
返回第一个子节点:node.firstChild
返回最后一个子节点:node.lastChild
返回同属下一个节点:node.nextSibling
返回同属上一个节点:node.previousSibling
7、节点信息
是否包含某节点:node.contains()

是否有子节点node.hasChildNodes()
8、创建新节点
createDocumentFragment()--创建文档碎片节点
createElement(tagname)--创建标签名为tagname的元素
createTextNode(text)--创建包含文本text的文本节点
9、获取鼠标单击事件的位置
var mouseClick = function(e) {
    var e = e || window.event; //兼容IE
    var x = 0, y = 0;
    if(e.pageX) {
        x = e.pageX;
        y = e.pageY;
    } else if(e.clicentX) {
        var offsetX = 0, offsetY = 0;
        if(document.documentElement.scrollLeft) {
            offsetX = document.documentElement.scrollLeft;
            offsetY = document.documentElement.scrollTop;
        } else if(document.body) {
            offsetX = document.body.scrollLeft;
            offsetY = document.body.scrollTop;
        }
        x = e.clientX + offsetX;
        y = e.clientY + offsetY;
    }
    console.log("你点击的位置是" + x + "," + y);
};
document.onclick = mouseClick;

这里我们需要解析下,请看javascript中的scroll事件中解释道,有部分浏览器对scroll事件的实现方式不一样;

三个概念: pageX,clientX,screenX的区别:

1、clientX,clientY表示事件发生时鼠标指针在视口中的水平坐标和垂直坐标:如图

2、pageX,pageY表示在页面中的坐标位置,即在body中的位置;

3、screenX和screenY:鼠标事件发生时,不仅会有相对于浏览器窗口的位置,还有一个相对于整个电脑屏幕的位置。而通过screenX和screenY属性可以确定鼠标事件发生时鼠标指针相对整个电脑屏幕的坐标;

问题一:FirefoxChromeSafariIE9都是通过非标准事件的pageXpageY属性来获取web页面的鼠标位置的。pageX/Y获取到的是触发点相对文档区域左上角距离,以页面为参考点,不随滑动条移动而变化

问题二:在IE 中,event 对象有 x, y 属性(事件发生的位置的 x 坐标和 y 坐标)火狐中没有。在火狐中,与event.x 等效的是 event.pageXevent.clientXevent.pageX 有微妙的差别(当整个页面有滚动条的时候),不过大多数时候是等效的。

offsetX:IE特有,chrome也支持。鼠标相比较于触发事件的元素的位置,以元素盒子模型的内容区域的左上角为参考点,如果有boder,可能出现负值

问题三:
scrollTop为滚动条向下移动的距离,所有浏览器都支持document.documentElement

其余参照:http://segmentfault.com/a/1190000002559158#articleHeader11

时间: 2024-12-11 20:07:27

JavaScript DOM知识 (一)的相关文章

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. D:文档 O:面向对象 M:模型(树) 获取元素: 有三种DOM方法可以获取元素节点,分别是通过元素id,通过标签名,和通过类名. 1.getElementById 根据id返回一个 2.getElementByTagName 根据标签名,返回一个对象数组.每个对象分别对应着document对象中的一个列表项元素. 3.getElementByClassName 以上

javascript 基础知识

javascript 基础知识编程规范注释 //驼峰对象化编程 数据类型字符串.数字.布尔.数组.对象.Null.Undefined定义 var carname=new String; var x= new Number; var y= new Boolean; var cars= new Array; var person= new Object; 字符串 var word = "Hello World!"; 数字 var x1 = 34.00; //使用小数点来写 var x2 =

《javascript dom编程艺术》笔记(二)——美术馆示例

这几天把这本书看完了,里面大部分知识我已经会了,所以看得就略简单,好多地方都没有再去动手去做,我知道这样是不对的,以后补吧. 现在我要做的是把这本书的笔记完结掉,不然总觉得有啥事没有做. 这个版本不是书中的最后版本,好像是第二版吧.后面还有动态创建结点的一版本,我已经在别的地方实践过了,就不再做了. 只贴出两个函数. //显示图片方法 function showPicture (whichpic) { //综合绑定的事件考虑,条件执行失败,希望浏览器可以让用户打开图片,因此在onclick处re

《JavaScript DOM 编程艺术》 ——笔记

以下只是个人的读书笔记,限于本人的知识局限性,可能有偏差.请见谅,欢迎指出问题. 1.本书的名字就是<JavaScript DOM 编程艺术>,那么首先什么是DOM呢? DOM-Document Object MOdel,按字面上的意思翻译就是文本对象模型.“W3C 文档对象模型 (DOM) 是中立于平台和语言的接口,它允许程序和脚本动态地访问和更新文档的内容.结构和样式.” 它将网页抽象成一个节点树: <!DOCTYPE html> <html lang="en&

《javascript dom编程艺术》笔记(一)——优雅降级、向后兼容、多个函数绑定onload函数

刚刚开始自学前端,如果不对请指正:欢迎各位技术大牛指点. 开始学习<javascript dom编程艺术>,整理一下学习到的知识.今天刚刚看到第六章,记下get到的几个知识点. 优雅降级 看到版本翻译为预留退路,刚刚看到个名词,我觉得很奇怪,以前没有听说过啊.不过看到英文注释就知道了Graceful degradation不就是优雅降级么,听说过! 书中举了个例子,点击一个链接,弹出一个窗口的方法. function popUp(WinURL){ window.open(WinURL,&quo

javascript DOM 操作

在javascript中,经常会需要操作DOM操作,在此记录一下学习到DOM操作的知识. 一.JavaScript DOM 操作 1.1.DOM概念 DOM :Document Object Model(文本对象模型). D : 文档(html或xml文档) O : 对象(文档对象) M : 模型 1.2.DOM结构 DOM将文档以家谱树的形式来表现. 下面是一个简单的html文档,我们可以看出该文档的DOM结构如下 1 <!DOCTYPE html> 2 <html> 3 <

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

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

电子书 JavaScript DOM编程艺术.pdf

是Web开发中重要的一门语言,它强大而优美.无论是桌面开发,还是移动应用.都是必须掌握的技术.W3C的DOM标准是开发Web应用的基石.已经得到所有现代浏览器的支持,这使得跨平台Web开发成了一件轻松惬意的事.< DOM编程艺术(第2版)>是超级畅销书的升级版,由倡导Web标准的领军人物执笔,揭示了前端开发的真谛,是学习和DOM开发的推荐阅读之作. < DOM编程艺术(第2版)>在简洁明快地讲述和DOM的基本知识之后,通过几个实例演示了专业水准的网页开发技术,透彻阐述了平稳退化等一