HTML DOM 对象

  • HTML Document
Document 对象
每个载入浏览器的 HTML 文档都会成为 Document 对象.
Document 对象使我们可以从脚本中对 HTML 页面中的所有元素进行访问.
 Tips: Document对象是 window 对象的一部分,可以通过 window.document 属性对其进行访问.
Document 对象集合
     all[ ] : 提供对文档中所有 HTML 元素的访问.
     anchors[ ] : 返回对文档中所有 Anchor 对象的引用.
     applets[ ] : 返回对文档中所有 Applet 对象的引用.
     forms[ ] : 返回对文档中所有 Form 对象引用.
     images[ ] : 返回对文档中所有 Image 对象的引用.
     links[ ] : 返回对文档中所有 Area 和 link 对象的引用.
Document 对象属性
     body : 提供对<body>元素的直接访问. 对于定义了框架的文档, 该属性引用最外层的<frameset>.
     cookie : 设置或返回与当前文档有关的所有 cookie.
     domain : 返回当前文档的域名.
     lastModified : 返回文档被最后修改的日期和时间.
     referrer : 返回 载入当前文档的文档的 URL.
     title : 返回当前文档的标题.
     URL : 返回当前文档的 URL.
Document 对象方法
     close( ) : 关闭用 document.open( )方法打开的输出流,并显示选定的数据.
     getElementById( ) : 返回对拥有指定 id 的第一个对象的引用.
     getElementsByName( ) : 返回带有指定名称的对象集合.
     getElementsByTagName( ) : 返回带有指定标签的对象集合.
     open( ) : 打开一个流,以收集来自任何 document.write( ) 或 document.writeIn( ) 方法的输出.
Document 对象描述
     HTMLDocument 接口对 DOM Document 接口进行了扩展, 定义 HTML 专用的属性和方法.
     很多属性和方法都是 HTMLCollection 对象( 实际上是可以用数组或名称索引的只读数组), 其中保存了对于锚,表单,链接以及其他脚本元素的引用.
     这些集合属性都源自0级 DOM. 它们已经被 Document.getElementsByTagName( )所取代, 但是仍然常常使用,因为他们很方便.
  • HTML DOM Element 对象
HTML DOM 节点
     在 HTML DOM( 文档对象模型 )中,每个部分都是节点:
          文档本身是文档节点
          所有 HTML 元素是元素节点
          所有 HTML 属性是属性节点
          HTML 元素内的文本是文本节点
          注释是注释节点
Element 对象
     HTML DOM 中, Element 对象表示 HTML 元素.
     Element 对象可以拥有类型为元素节点,文本节点,注释节点的子节点
      NodeList 对象表示节点列表, 比如 HTML 元素的子节点集合.
     元素也可以拥有属性.属性是属性节点.
属性和方法
     element.accessKey : 设置或返回元素的快捷键.
     element.appendChild : 向元素添加新的子节点, 作为最后一个子节点.
     element.attributes : 返回元素属性的 NamedNodeMap.
     element.childNodes : 返回子节点的 NodeList.
     element.className : 设置或返回元素的 class 属性.
     element.clientHeight : 返回元素的可见高度.
     element.clientWidth : 返回元素的可见宽度.
     element.cloneNode( ) : 克隆元素.
     element.compareDocumentPosition( ) : 比较两个元素的文档位置.
     element.contentEditable : 设置或返回元素的文本方向.
     element.dir : 设置或返回元素的文本方向.
     element.firstChild :  返回元素的首个子.
     element.getAttribute( ) : 返回元素节点的指定属性值.
     element.getAttributeNode( ) : 返回指定的属性节点.
     element.getElementsByTagName( ) : 返回拥有指定标签名的所有子元素的集合.
     element.getFeature( ) : 返回实现了指定特性的 API 的某个对象.
     element.getUserData( ) : 返回关联元素上键的对象.
     element.hasAttribute( ) : 如果元素拥有 指定属性,则返回 true, 否则返回 false.
     element.hasChildNodes( ) : 如果元素拥有子节点,则返回 true, 否则 false.
     element.id : 设置或返回元素的 id.
     element.innerHTML : 设置或返回元素的内容.
     element.insertBefore( ) : 在指定的已有的子节点之前插入新节点.
     element.isDefaultNamespace( ) : 如果指定的 namespaceURL 是默认的, 则返回 true, 否则返回 false.
     element.isContentEditable : 设置会返回元素的内容.
     element.isEqualNode( ) : 检查两个元素是否相等.
     element.isSupported( ) : 如果元素支持指定特性,则返回 true.
     element.isSameNode( ) : 检查两个元素是否是相同的节点.
     element.lang : 设置或返回元素的语言代码.
     element.lastChild : 返回元素的最后一个子元素.
     element. namespaceURI 返回元素的 namespaceURI.
     element.nextSibling : 返回位于相同节点树层级的下一个节点.
     element.nodeName : 返回元素的名称.
     element.nodeType : 返回元素的节点类型.
     element.nodeValue : 设置或返回元素值.
     element.normalize( ) : 合并元素中相邻的文本节点, 并移出空的文本节点.
     element.offsetHeight : 返回元素的高度.
     element.offsetWidth : 返回元素的宽度.
     element.offsetLeft : 返回元素的水平偏移值.
     element.offsetParent : 返回元素的偏移容器.
     element.offsetTop : 返回元素的垂直偏移位置.
     element.ownerDocument : 返回元素的根元素( 文档对象 ).
     element.parentNode : 返回元素的父节点.
     element.previousSibling : 返回位于相同节点树层级的前一个元素.
     element.removeAttribute( ) : 从元素中移出指定属性.
     element.removeAttributeNode( ) : 移出指定的属性节点, 并返回被移出的节点.
     element.removeChild( ) : 从元素中移出子节点.
     element.replaceChild( ) : 替换元素中的子节点.
     element.scrollHeight : 返回元素的整体高度.
     element.scrollLeft : 返回元素左边缘与视图之间的距离.
     element.scrollTop : 返回元素上边缘与视图之间的距离.
     element.scrollWidth : 返回元素的整体宽度.
     element.setAttribute( ) : 把指定属性设置或更改为指定值.
     element.setAttributeNode( ) : 设置或更改指定属性节点.
     element.setUserData( ) : 把对象关联到元素上的键.
     element.style : 设置或返回元素的 style 属性.
     element.tabIndex : 返回或设置元素的tab 键控制次序.
     element.tagName : 返回元素的标签名.
     element.textContent : 设置会返回节点极其后代的文本内容.
     element.title : 设置或返回元素的 title 属性.
     element.toString( ) : 把元素转换为字符串.
     nodelist.item( ) : 返回 NodeList 中位于指定下标的节点.
     nodelist.length : 返回 NodeList中的节点数.
  • HTML DOM Attribute 对象
Attr 对象
在HTML DOM 中, Attr 对象表示 HTML 属性.
HTML 属性始终属于 HTML 元素.
NamedNodeMap 对象
在 HTML DOM 中, NamedNodeMap 对象表示元素属性节点的无序集合.
NamedNodeMap 中的节点 可以通过名称或索引( 数字 )来访问.
属性和方法
attr.isId  : 入果属性是 id 类型,则返回 true, 否则返回 false.
attr.name  : 返回属性的名称.
attr.value  : 设置或返回属性的值.
attr.specified : 如果已指定属性,则返回 true, 否则返回 false.
nodemap.getNamedItem() : 从 NameNodeMap 返回指定的属性节点.
nodemap.item() : 返回 NamedNodeMap 中位于指定下标的节点
nodemap.length : 返回 NameNodeMap 中的节点数.
nodemap.removeNamedItem() : 移出指定的属性节点.
nodemap.setNamedItem() : 设置指定的属性节点(通过名称).
DOM 4 警告!
在W3C DOM Core 中, Attr(attribute)对象从 Node 对象继承所有属性和方法.
在 DOM 4 中, Attr 对象不再从 Node 继承.
属性 / 方法     避免的理由
attr.appendChild()   :  属性没有子节点。
attr.attributes     : 属性没有属性。
attr.baseURI     : 使用 document.baseURI 代替。
attr.childNodes   :   属性没有子节点。
attr.cloneNode()     : 使用 attr.value 代替。
attr.firstChild   :   属性没有子节点。
attr.hasAttributes()   :   属性没有属性。
attr.hasChildNodes   :   属性没有子节点。
attr.insertBefore()   :   属性没有子节点。
attr.isEqualNode()   :   没有意义。
attr.isSameNode()   :   没有意义。
attr.isSupported()   :   始终为 true。
attr.lastChild   :   属性没有子节点。
attr.nextSibling   :   属性没有同级节点。
attr.nodeName   :   使用 attr.name 代替。
attr.nodeType   :   始终为 2 (ATTRIBUTE_NODE)。
attr.nodeValue     : 使用 attr.value 代替。
attr.normalize()     : 属性无法被正常化。
attr.ownerDocument :     始终是您的 HTML 文档。
attr.ownerElement   :   这是您用来访问该属性的 HTML 元素。
attr.parentNode   :   这是您用来访问该属性的 HTML 元素。
attr.previousSibling     : 属性没有同级节点。
attr.removeChild     : 属性没有子节点。
attr.replaceChild   :   属性没有子节点。
attr.textContent     : 使用 attr.value 代替。
  • HTML DOM Event 对象
Event 对象
Event对象代表事件的状态,比如事件在其中发生的元素,键盘按键的状态,鼠标的位置,鼠标按钮的状态.
事件通常与函数结合使用,函数不会再事件发生前被执行!
事件句柄( Event Handlers)
onabort : 图像的加载被中断.
onblur  :  获得焦点
onchange : 域的内容被改变
onclick : 当用户点击某个对象时调用的事件句柄.
ondbclick : 当用户双击某个对象时调用的事件句柄.
onerror : 在加载文档或图像时发生错误.
onfocus : 元素获得焦点.
onkeydown : 某个键盘按键被按下.
onkeypress : 某个键盘按键被按下并松开.
onkeyup : 某个键盘按键被松开.
onload : 一张页面或一幅图像加载完成.
onmousedown : 鼠标按钮被按下.
onmouseout : 鼠标从某元素移开.
onmousemove : 鼠标被移动.
onmouseover : 鼠标移到某元素之上.
onmouseup : 鼠标按键被松开.
onreset : 重置按钮被点击.
onresize : 窗口或框架被重新调整大小.
onsubmit : 确认按钮被点击.
onselect : 文本被选中.
onunload : 用户退出界面.
鼠标/键盘属性
altkey : 返回当事件被触发时," alt"是否被按下.
button   :   返回当事件被触发时,哪个鼠标按钮被点击。
clientX   :   返回当事件被触发时,鼠标指针的水平坐标。
clientY   :   返回当事件被触发时,鼠标指针的垂直坐标。
ctrlKey   :   返回当事件被触发时,"CTRL" 键是否被按下。
metaKey   :   返回当事件被触发时,"meta" 键是否被按下。
relatedTarget   :   返回与事件的目标节点相关的节点。
screenX   :   返回当某个事件被触发时,鼠标指针的水平坐标。
screenY     : 返回当某个事件被触发时,鼠标指针的垂直坐标。
shiftKey   :   返回当事件被触发时,"SHIFT" 键是否被按下。
IE 属性
除了上面的鼠标/事件属性,IE 浏览器还支持下面的属性:
cancelBubble   :  如果事件句柄想阻止事件传播到包容对象,必须把该属性设为 true。
fromElement     : 对于 mouseover 和 mouseout 事件,fromElement 引用移出鼠标的元素。
keyCode           : 对于 keypress 事件,该属性声明了被敲击的键生成的 Unicode 字符码。对keydown 和 keyup 事件,它指定了被敲击的键的虚拟键盘码。虚拟键盘码可能和使用的键盘的布局相关。
offsetX,offsetY  : 发生事件的地点在事件源元素的坐标系统中的 x 坐标和 y 坐标。
returnValue       :  如果设置了该属性,它的值比事件句柄的返回值优先级高。把这个属性设置为 fasle,可以取消发生事件的源元素的默认动作。
srcElement       : 对于生成事件的 Window 对象、Document 对象或 Element 对象的引用。
toElement         :  对于 mouseover 和 mouseout 事件,该属性引用移入鼠标的元素。
x,y                    :   事件发生的位置的 x 坐标和 y 坐标,它们相对于用CSS动态定位的最内层包容元素。
标准 Event 属性
下面列出了 2 级 DOM 事件标准定义的属性。
bubbles     :    返回布尔值,指示事件是否是起泡事件类型。
cancelable     :    返回布尔值,指示事件是否可拥可取消的默认动作。
currentTarget     :    返回其事件监听器触发该事件的元素。
eventPhase     :    返回事件传播的当前阶段。
target     :    返回触发此事件的元素(事件的目标节点)。
timeStamp     :    返回事件生成的日期和时间。
type     :    返回当前 Event 对象表示的事件的名称。
标准 Event 方法
下面列出了 2 级 DOM 事件标准定义的方法。IE 的事件模型不支持这些方法:
initEvent()         :初始化新创建的 Event 对象的属性。
preventDefault()     :通知浏览器不要执行与事件关联的默认动作。
stopPropagation()     :不再派发事件。
 

      
     
THE END
< <上一篇
下一篇>>