文档对象模型(Document Object Model,DOM)是一种用于HTML和XML文档的编程接口。它给文档提供了一种结构化的表示方法,可以改变文档的内容和呈现方式。我们最为关心的是,DOM把网页和脚本以及其他的编程语言联系了起来。DOM属于浏览器,而不是JavaScript语言规范里的规定的核心内容。
一 查找元素
1.1直接查找
1 document.getElementById 根据ID获取一个标签
2 document.getElementsByName 根据name属性获取标签集合
3 document.getElementsByClassName 根据class属性获取标签集合
4 document.getElementsByTagName 根据标签名获取标签集合
1.2间接查找
1 parentNode // 父节点
2 childNodes // 所有子节点
3 firstChild // 第一个子节点
4 lastChild // 最后一个子节点
5 nextSibling // 下一个兄弟节点
6 previousSibling // 上一个兄弟节点
7
8 parentElement // 父节点标签元素
9 children // 所有子标签
10 firstElementChild // 第一个子标签元素
11 lastElementChild // 最后一个子标签元素
12 nextElementtSibling // 下一个兄弟标签元素
13 previousElementSibling // 上一个兄弟标签元素
二、操作
2.1内容
1 innerText 仅仅文本 自动过滤内部标签
2 outerText
3 innerHTML HTML内容:包含文本和内本的浅表
4 innerHTML
5 value 值 input标签 文本框中的内容
select 选中的值 还有一个特有的selectindex
textarea
<input id="i1" type="text" onfocus="fecus()" onblur="blu()" value="请输入关键字"><div>onfocus 也适用于tab键</div><div style="color: red"><input type="text" placeholder="请输入关键字">这种做法在目前只适合最新版本的浏览器,so目前推荐上面js的做法</div><script>function fecus(){var tag = document.getElementById('i1');var val = tag.value;if(val=="请输入关键字"){tag.value='';}}function blu() {var tag = document.getElementById('i1');var val = tag.value;if(val.length==0){tag.value='请输入关键字';}}</script>
2.2 样式操作
增加与删除样式
obj.className
obj.classList
classList.add()
classList.remove()
设置样式的属性
obj.style.color='red';
obj.style.fontSize='16px';
2.3 属性操作
获取属性
obj.attributes
NamedNodeMap {0: id, 1: type, 2: onfocus, 3: onblur, 4: value, 5: class, 6: style, length: 7}
添加属性
obj.setAttribute('id','id1')
删除属性
obj.removeAttribute('id')
2.4 创建标签 并添加到指定位置
创建标签有两种方法:1.通过字符串的方法 2.通过dom来穿件
ps:jqure中并不具有创建标签的办法,so这里需要掌握!
<script>function addEle1() {var tag = '<p><input type="text" </p>';document.getElementById('i3').insertAdjacentHTML("beforeEnd",tag);}function addEle2() {var tag=document.createElement('input');tag.setAttribute('type','text')tag.style.color='red';tag.style.border='black 1px solid'var p=document.createElement('p');p.appendChild(tag);document.getElementById('i3').appendChild(p)}</script>
2.5 实现表单的提交
在html中 需要使用 form中的 <input type='submit'> 来实现
在dom中,任何标签都可以显示表单的提交
2.6 其他操作
1 alert 弹出消息 2 console.log 在浏览器调试模式下输出 3 confirm('真的要删除吗') 弹框确定 4 //url操作 5 location.href 获取当前网址 6 location.href=' ' 重定向 7 location.reload() 页面刷新 8 9 //定时器 10 setInterval(‘fuction’,5000) 一直在执行 11 clearIterval( obj) 清除setInterval对象 12 setTimeout(‘fuction’,5000) 只执行一次,5s之后再执行 13 qq邮箱删除邮件,就使用了该技术 14 clearTimeout(obj) 与上个一样
<div id="i1"></div><input type="button" onclick="settime()" value="删除"><script>function settime(){document.getElementById('i1').innerText='已删除';setTimeout(function () {document.getElementById('i1').innerText='';},5000)}</script>