10、 DOM
DOM是“Document Object Model”(文档对象模型)的首字母缩写
1)访问节点:
访问html元素:var oHtml=document.documentElement;
获取head元素:varoHead=oHtml.firstChild;
获取body元素:varoBody=oHtml.lastChild; 或者 var oBody=document.body;
2)检测节点类型
通过节点的nodeType属性来检验节点类型:
alert(document.nodeType); //输出9
各常量名称与数值对照表如下:
ELEMENT_NODE 1
ATTRIBUTE_NODE 2
TEXT_NODE 3
CDATA_SECTION_NODE 4
ENTITY_REFERENCE_NODE 5
ENTITY_NODE 6
PROCESSING_INSTRCTION_NODE 7
COMMENT_NODE 8
DOCUMENT_NODE 9
DOCUMENT_TYPE_NODE 10
DOCUMENT_FRAGMENT_NODE 11
NOTATION_NODE 12
3)访问指定节点
1、 getElementsByTagName()获取标签名
2、 getElementsByName() 获取name特性等于指定值的元素;获取标签的名称
<inputtype="radio" name="redColor" value="red" />
<scripttype="text/javascript">
var d =document.getElementsByName("redColor");
document.write(d[0].getAttribute("value"));
</script>
3、 getElementById() 返回id特性等于指定的元素;
4)创建和操作节点:
一张IE(6.0)和FF对DOM Level1的创建新节点方法支持的对照表:
方法 IE FF
createAttribute(name) Y Y
createCDATASection(text) N Y
createComment(text) Y Y
createDocumentFragment() Y Y
createElement(tagName) Y Y
createEntityReference(name) N Y
createProcessingInstruction(target,data) Y N
createTextNode(text) Y Y
createElement() 创建标签元素
createTextNode() 创建文本节点
appendChild() 把文本节点追加到标签元素中
removeChild() 删除节点
replaceChild() 替换节点
insertBefore() 插入节点
注意:replaceChild和insertBefore两个参数都是新节点在前,旧节点在后。
5)Table方法
6)遍历DOM
NodeIterator
TreeWalker
11、事件
冒泡型事件:从最特定的事件目标到最不特定的事件目标的顺序触发;
捕获型事件:从最不确定的对象触发,然后到最精确;
事件处理函数/监听函数:
Click 点击 load 载入 mouseover 鼠标经过
用于相应某个事件而调用的函数称为事件处理函数;
事件处理函数必须为小写,才能正确响应事件;
attacheEvent 函数:事件处理函数添加;
detachEvent 函数:在事件处理函数中查找指定的函数,并移除它;
DOM addEventListener() :分配事件处理函数;
DOM removeEventListener() :移除事件处理函数
DOM 方法必须三个参数:事件名称,要分配的函数,处理函数的冒泡阶段和捕获阶段,如果是用在捕获阶段,第三个参数为true;用于冒泡阶段,则为false;
事件类型(不在展开描述,掌握鼠标事件即可,其他的可参考js内置对象):
鼠标事件
键盘事件
Html事件
变化事件
跨平台事件
表单事件:
访问表单字段(id):document.getElementById()
聚焦:forcus()
提交表单:submit()
重置表单:reset()
选择文本:select()
自动切换到下一个输入框:tabForward()
限制textarea的字符数:isNotMax()
禁止粘贴:onpaste
创建自动提示的文本框
12拖放
拖放事件:
dragstart
drag
dragend
放置鼠标事件:
dragenter ——dragover ——dragleave——drop
数据传输对象:dataTransfer
getData() 获取 setData() 存储的值
dropEffect
effectAllowed
dragDrop()方法:初始化系统拖放事件
zDragDrop模拟拖放过程对象,需要下载zdragdroplib.js包
附:鼠标事件
一般事件 |
||
事件 |
浏览器支持 |
描述 |
onClick |
HTML: 2 | 3 | 3.2 | 4 |
鼠标点击事件,多用在某个对象控制的范围内的鼠标点击 |
onDblClick |
HTML: 2 | 3 | 3.2 | 4 |
鼠标双击事件 |
onMouseDown |
HTML: 2 | 3 | 3.2 | 4 |
鼠标上的按钮被按下了 |
onMouseUp |
HTML: 2 | 3 | 3.2 | 4 |
鼠标按下后,松开时激发的事件 |
onMouseOver |
HTML: 2 | 3 | 3.2 | 4 |
当鼠标移动到某对象范围的上方时触发的事件 |
onMouseMove |
HTML: 2 | 3 | 3.2 | 4 |
鼠标移动时触发的事件 |
onMouseOut |
HTML: 2 | 3 | 3.2 | 4 |
当鼠标离开某对象范围时触发的事件 |
onKeyPress |
HTML: 2 | 3 | 3.2 | 4 |
当键盘上的某个键被按下并且释放时触发的事件.[注意:页面内必须有被聚焦的对象] |
onKeyDown |
HTML: 2 | 3 | 3.2 | 4 |
当键盘上某个按键被按下时触发的事件[注意:页面内必须有被聚焦的对象] |
onKeyUp |
HTML: 2 | 3 | 3.2 | 4 |
当键盘上某个按键被按放开时触发的事件[注意:页面内必须有被聚焦的对象] |
页面相关事件 |
||
事件 |
浏览器支持 |
描述 |
onAbort |
HTML: 2 | 3 | 3.2 | 4 |
图片在下载时被用户中断 |
onBeforeUnload |
HTML: 2 | 3 | 3.2 | 4 |
当前页面的内容将要被改变时触发的事件 |
onError |
HTML: 2 | 3 | 3.2 | 4 |
捕抓当前页面因为某种原因而出现的错误,如脚本错误与外部数据引用的错误 |
onLoad |
HTML: 2 | 3 | 3.2 | 4 |
页面内空完成传送到浏览器时触发的事件,包括外部文件引入完成 |
onMove |
HTML: 2 | 3 | 3.2 | 4 |
浏览器的窗口被移动时触发的事件 |
onResize |
HTML: 2 | 3 | 3.2 | 4 |
当浏览器的窗口大小被改变时触发的事件 |
onScroll |
HTML: 2 | 3 | 3.2 | 4 |
浏览器的滚动条位置发生变化时触发的事件 |
onStop |
HTML: 2 | 3 | 3.2 | 4 |
浏览器的停止按钮被按下时触发的事件或者正在下载的文件被中断 |
onUnload |
HTML: 2 | 3 | 3.2 | 4 |
当前页面将被改变时触发的事件 |
表单相关事件 |
||
事件 |
浏览器支持 |
描述 |
onBlur |
HTML: 2 | 3 | 3.2 | 4 |
当前元素失去焦点时触发的事件 [鼠标与键盘的触发均可] |
onChange |
HTML: 2 | 3 | 3.2 | 4 |
当前元素失去焦点并且元素的内容发生改变而触发的事件 [鼠标与键盘的触发均可] |
onFocus |
HTML: 2 | 3 | 3.2 | 4 |
当某个元素获得焦点时触发的事件 |
onReset |
HTML: 2 | 3 | 3.2 | 4 |
当表单中RESET的属性被激发时触发的事件 |
onSubmit |
HTML: 2 | 3 | 3.2 | 4 |
一个表单被递交时触发的事件 |
滚动字幕事件 |
||
事件 |
浏览器支持 |
描述 |
onBounce |
HTML: 2 | 3 | 3.2 | 4 |
在Marquee内的内容移动至Marquee显示范围之外时触发的事件 |
onFinish |
HTML: 2 | 3 | 3.2 | 4 |
当Marquee元素完成需要显示的内容后触发的事件 |
onStart |
HTML: 2 | 3 | 3.2 | 4 |
当Marquee元素开始显示内容时触发的事件 |
编辑事件 |
||
事件 |
浏览器支持 |
描述 |
onBeforeCopy |
HTML: 2 | 3 | 3.2 | 4 |
当页面当前的被选择内容将要复制到浏览者系统的剪贴板前触发的事件 |
onBeforeCut |
HTML: 2 | 3 | 3.2 | 4 |
当页面中的一部分或者全部的内容将被移离当前页面[剪贴]并移动到浏览者的系统剪贴板时触发的事件 |
onBeforeEditFocus |
HTML: 2 | 3 | 3.2 | 4 |
当前元素将要进入编辑状态 |
onBeforePaste |
HTML: 2 | 3 | 3.2 | 4 |
内容将要从浏览者的系统剪贴板传送[粘贴]到页面中时触发的事件 |
onBeforeUpdate |
HTML: 2 | 3 | 3.2 | 4 |
当浏览者粘贴系统剪贴板中的内容时通知目标对象 |
onContextMenu |
HTML: 2 | 3 | 3.2 | 4 |
当浏览者按下鼠标右键出现菜单时或者通过键盘的按键触发页面菜单时触发的事件 [试试在页面中的<body>中加入onContentMenu="return false"就可禁止使用鼠标右键了] |
onCopy |
HTML: 2 | 3 | 3.2 | 4 |
当页面当前的被选择内容被复制后触发的事件 |
onCut |
HTML: 2 | 3 | 3.2 | 4 |
当页面当前的被选择内容被剪切时触发的事件 |
onDrag |
HTML: 2 | 3 | 3.2 | 4 |
当某个对象被拖动时触发的事件 [活动事件] |
onDragDrop |
HTML: 2 | 3 | 3.2 | 4 |
一个外部对象被鼠标拖进当前窗口或者帧 |
onDragEnd |
HTML: 2 | 3 | 3.2 | 4 |
当鼠标拖动结束时触发的事件,即鼠标的按钮被释放了 |
onDragEnter |
HTML: 2 | 3 | 3.2 | 4 |
当对象被鼠标拖动的对象进入其容器范围内时触发的事件 |
onDragLeave |
HTML: 2 | 3 | 3.2 | 4 |
当对象被鼠标拖动的对象离开其容器范围内时触发的事件 |
onDragOver |
HTML: 2 | 3 | 3.2 | 4 |
当某被拖动的对象在另一对象容器范围内拖动时触发的事件 [活动事件] |
onDragStart |
HTML: 2 | 3 | 3.2 | 4 |
当某对象将被拖动时触发的事件 |
onDrop |
HTML: 2 | 3 | 3.2 | 4 |
在一个拖动过程中,释放鼠标键时触发的事件 |
onLoseCapture |
HTML: 2 | 3 | 3.2 | 4 |
当元素失去鼠标移动所形成的选择焦点时触发的事件 |
onPaste |
HTML: 2 | 3 | 3.2 | 4 |
当内容被粘贴时触发的事件 |
onSelect |
HTML: 2 | 3 | 3.2 | 4 |
当文本内容被选择时的事件 |
onSelectStart |
HTML: 2 | 3 | 3.2 | 4 |
当文本内容选择将开始发生时触发的事件 |
数据绑定 |
||
事件 |
浏览器支持 |
描述 |
onAfterUpdate |
HTML: 2 | 3 | 3.2 | 4 |
当数据完成由数据源到对象的传送时触发的事件 |
onCellChange |
HTML: 2 | 3 | 3.2 | 4 |
当数据来源发生变化时 |
onDataAvailable |
HTML: 2 | 3 | 3.2 | 4 |
当数据接收完成时触发事件 |
onDatasetChanged |
HTML: 2 | 3 | 3.2 | 4 |
数据在数据源发生变化时触发的事件 |
onDatasetComplete |
HTML: 2 | 3 | 3.2 | 4 |
当来子数据源的全部有效数据读取完毕时触发的事件 |
onErrorUpdate |
HTML: 2 | 3 | 3.2 | 4 |
当使用onBeforeUpdate事件触发取消了数据传送时,代替onAfterUpdate事件 |
onRowEnter |
HTML: 2 | 3 | 3.2 | 4 |
当前数据源的数据发生变化并且有新的有效数据时触发的事件 |
onRowExit |
HTML: 2 | 3 | 3.2 | 4 |
当前数据源的数据将要发生变化时触发的事件 |
onRowsDelete |
HTML: 2 | 3 | 3.2 | 4 |
当前数据记录将被删除时触发的事件 |
onRowsInserted |
HTML: 2 | 3 | 3.2 | 4 |
当前数据源将要插入新数据记录时触发的事件 |
外部事件 |
||
事件 |
浏览器支持 |
描述 |
onAfterPrint |
HTML: 2 | 3 | 3.2 | 4 |
当文档被打印后触发的事件 |
onBeforePrint |
HTML: 2 | 3 | 3.2 | 4 |
当文档即将打印时触发的事件 |
onFilterChange |
HTML: 2 | 3 | 3.2 | 4 |
当某个对象的滤镜效果发生变化时触发的事件 |
onHelp |
HTML: 2 | 3 | 3.2 | 4 |
当浏览者按下F1或者浏览器的帮助选择时触发的事件 |
onPropertyChange |
HTML: 2 | 3 | 3.2 | 4 |
当对象的属性之一发生变化时触发的事件 |
onReadyStateChange |
HTML: 2 | 3 | 3.2 | 4 |
当对象的初始化属性值发生变化时触发 |