DOM
Document Object Model( 文档对象模型 )
是把html里面的各种数据当作对象进行操作的一种思路。 一个html页面被浏览器加载的时候,浏览器会对整个html页面上的所有标签都创建一个对应的对象进行描述。
页面对象组建成Document文档树,文档树每个标签对象都称作节点(Node)。组建好之后,按照树的结构将页面显示在浏览器的窗口中
只要能找到对应的对象操作对象的属性,则可以改变浏览器当前显示的内容。(通过js操控html: 获取节点—>设置属性)
注意:js代码要写在文档之后、或者写在window.onload里面(等对象转载完成)才能获取文档树
HTML DOM 定义了访问和操作HTML文档的标准方法,详细内容查看DHTML文档
节点
document 代表当前页面的整个文档树
属性:
all 获取html文件中的所有标签节点
links 获取文档中含有href的属性的标签
body
获取 元素节点:
document.getElementById("元素的id")
document.getElementsByTagName("标签名") 返回元素数组
document.getElementsByClassName("元素的class") 返回节点数组
document.getElementsByName("元素的name") 元素节点
错误:无法获取/获取null
//javascript是解释语言,是顺序执行的。 在执行到 document.getElementById的时候,div标签还没有加载,所以无法获取。
获取 属性节点, 内容节点
var 元素节点=document.getElementById(); //获取元素节点
//获取属性节点
var 属性节点=元素节点.attributes; //获取其下所有的属性节点(数组)
for(i = 0; i< 属性节点.length; i++){ //遍历
属性节点[i].nodeName; //表示一个节点的名称
属性节点[i].nodeValue; //表示一个节点的值
}
//获取内容节点
var 内容节点=元素节点.childNodes[0];
内容节点.nodeName; //内容节点名
内容节点.nodeValue; //内容节点值
节点的属性
nodeName 节点名称
nodeValue 节点值
nodeType 节点类型
innerHTML 元素的文本内容
元素上的属性
id
value
className
节点关系
通过关系(父子关系、兄弟关系)找节点:
parentNode 获取当前元素的父节点。
childNodes 获取当前元素的所有下一级子元素。
firstChild 获取当前节点的第一个子节点。
lastChild 获取当前节点的最后一个子节点。
nextSibling 获取当前节点的下一个节点。(兄节点)
previousSibling 获取当前节点的上一个节点。(弟节点)
创建 节点
createElement 创建元素节点
createTextNode 创建文本节点
createAttribute 创建属性节点
设置节点的属性:
var elt=document.createElement("标签名") 创建新标签元素节点
elt.setAttribute("属性名", "属性值") 给节点设置属性
elt.appendChild(e) 添加元素到elt中最后的位置
插入目标元素的位置
elt.insertBefore(newNode, oldNode); 添加到elt中,child之前。 注意: elt必须是oldNode的直接父节点。
elt.removeChild(child); 删除指定的子节点。 注意: elt必须是child的直接父节点
删除节点
替换节点
插入节点
Canvas.getContext(contextID) 方法返回一个用于在画布上绘图的环境
样式
一个元素节点的style属性即对应的css
元素节点.style.display="none"; //none隐藏,block显示
元素节点.style.backgroundColor="green"; //背景色
事件
事件驱动:JS代码写好后,需要外界触发后,方可运行,例如:单击事件,定时执行···
注册事件的方式:
方式一: 直接在html元素上注册
<body onload="ready()">
function ready(){
alert("body的元素被加载完毕了..");
}
方式二:可以js代码找到对应的对象再注册。 推荐使用
var bodyNode = document.getElementById("body");
bodyNode.onload = function(){
alert("body的元素被加载完毕");
}
常用事件:
鼠标点击:
onclick 在用户用鼠标左键单击对象时触发。
ondblclick 当用户双击对象时触发。
onmousedown 当用户用鼠标按钮按下对象时触发。
onmouseup 当用户在鼠标按钮松开对象时触发。
鼠标移动:
onmouseout 当用户将鼠标指针移出对象边界时触发。
onmousemove 当用户将鼠标划过对象时触发。
焦点:
onblur 在对象失去输入焦点时触发。
onfocus 当对象获得焦点时触发。
其他:
onchange 当对象或选中区的内容改变时触发。
onload 在浏览器完成对象的装载后立即触发。
onsubmit 当表单将要被提交时触发。事件方法返回true提交,false不允许提交
this 当前组件
正则表达式:
创建方式:
方式1:
/ 正则表达式 / 模式
方式2:
new RegExp("正则表达式",模式);
正则表达式对象常用方法:
test() 使用正则对象去匹配字符串 如果匹配成功返回ture,否则返回false.
exec() 根据正则表达式去查找字符串符合规则的内容。
模式:
g (全文查找出现的所有 pattern)
i (忽略大小写)