时间:2021-05-25
DOM(Document Object Model):
结点的概念:整个文档就是由层次不同的多个节点组成,可以说结点代表了全部内容。
结点类型
1.元素结点
2.属性结点
3.文本结点
结点的注意点:
1.文本节点和属性结点都看作元素结点的子结点
2.我们一般所说的结点指的就是元素结点,将html标签看作是一个对象,并用“结点”称呼它
3.结点的关系有:父子关系、兄弟关系
1.获取元素结点
1)直接获取
① document.getElementById()
② document.getElementsByName()
③ document.getElementsByTagName()
2)间接获取
父子关系
firstChild lastChild childNodes
子父关系
parentNode
兄弟关系
nextSibling previousSibling
2.操作属性结点
1)通过对象“.”属性,来操作属性
优:可以动态获取用户修改的属性值
缺:不能获取自定义属性的值
2)getAttribute("key") setAttribute("key","value") removeAttribute("key")
优:可以获取自定义属性的值
缺:不能动态获取用户修改的属性值
3.处理文本结点
1) 通过对象.innerText 获取标签内部的文本信息
2) 通过对象.innerHTML 获取标签内部的HTML代码
4.动态改变DOM结构
1)创建一个结点对象
document.createElement("标签名")
2)(父结点)追加子结点对象
fatherNode.appendChild(子结点对象)
3)(父结点)在指定结点前添加子结点
fatherNode.insertBefore(新结点对象,参考结点对象)
4)(父结点)替换旧的子结点对象
fatherNode.replaceChild(新结点对象,旧结点对象)
5)(父结点)删除旧子结点对象
fahterNode.removeChild(旧结点对象)
5.动态改变元素的CSS样式(不重要)
1)我们通过对象.style属性操作对象的css样式:样式名称中有“-”将“-”去掉,并将“-”后一个字母改为大写来作为样式的新名称
2)我们希望通过class为一个对象添加一个class样式,添加属性名是className,而并非class(class是js的关键字,并能作为属性名存在)
<script type="application/javascript">//1.获取元素结点//1)直接获取// ① document.getElementById()function getEle1(){var obj=document.getElementById("userid")console.log(obj)}// ② document.getElementsByName()function getEle2() {// 获取的是一个数组var obj = document.getElementsByName("fav");console.log(obj)}// ③ document.getElementsByTagName()function getEle3(){var obj = document.getElementsByTagName("input");console.log(obj);}function getEle4(){var father = document.getElementById("regForm");var sons = father.childNodes;// 获取指定位置console.log(sons[1]);// firstChild 获取第一个console.log(father.firstChild);// lastChild 获取最后一个console.log(father.lastChild);}// 子父关系 parentNodefunction getEle5(){var son = document.getElementById("userid");console.log(son.parentNode)}// 兄弟关系 nextSibling 下一个对象 //previousSibling当前结点的前一个结点返回紧邻当前元素之前的元素function getEle6(){var bro = document.getElementById("userid");console.log(bro.nextSibling.nextSibling.nextSibling.nextSibling.nextSibling.nextSibling);bro.previousSibling}function getField1(){var obj = document.getElementById("nickid");//console.log(obj.type);//将昵称的样式改为password//obj.type = "password";var objval = obj.getAttribute("name");console.log(objval);obj.setAttribute("abcd","5678");obj.removeAttribute("type");// 可以获取改变后的属性console.log(obj.value)// 只能获取初始定义的属性console.log(obj.getAttribute("value"));}// 1) 通过对象.innerText 获取标签内部的文本信息function getText1(){var myDiv = document.getElementById("myDiv");console.log(myDiv.innerText);}// 2) 通过对象.innerHTML 获取标签内部的HTML代码function getText2(){var myDiv = document.getElementById("myDiv");console.log(myDiv.innerHTML);}// 添加文本function getText3(){var myDiv = document.getElementById("myDiv");myDiv.innerText = "<img src='1.jpg' />";}// 添加代码function getText4(){var myDiv = document.getElementById("myDiv");myDiv.innerHTML = "<img src='1.jpg' />";}</script></head><body><button onclick="getEle1();">点我测试1</button><button onclick="getEle2();">点我测试2</button><button onclick="getEle3();">点我测试3</button><button onclick="getEle4();">点我测试4</button><button onclick="getEle5();">点我测试5</button><button onclick="getEle6();">点我测试6</button><hr/><button onclick="getField1();">属性测试1</button><hr/><button onclick="getText1();">文本测试1</button><button onclick="getText2();">文本测试2</button><button onclick="getText3();">文本测试3</button><button onclick="getText4();">文本测试4</button><hr/><form id="regForm">用户名:<input id="userid" type="text" name="username"><br/>密码:<input type="password" name="password"><br/>昵称:<input id="nickid" type="text" name="nickname" value="大名鼎鼎" abcd="1234" ><br/>性别:男<input type="radio" name="gender" value="nan"> 女<input type="radio" name="gender" value="nv"><br/>爱好:狗<input type="checkbox" name="fav" value="dog">猫<input type="checkbox" name="fav" value="cat">羊驼<input type="checkbox" name="fav" value="yt"><br/><input type="submit" value="注册"></form><div id="myDiv"><b>hello</b></div></body>动态改变DOM结构
1)创建一个结点对象
document.createElement("标签名")
<script type="application/javascript">function changeDom1(){var ipt=document.createElement("input");}</script><button onclick="changeDom1();">创建结点对象</button>2)(父结点)追加子结点对象
fatherNode.appendChild(子结点对象)
function changeDom2() {var father = document.getElementById("regForm");var ipt = document.createElement("input");ipt.type = "text";father.appendChild(ipt);}<button onclick="changeDom2();">追加子结点对象</button>3)(父结点)在指定结点前添加子结点
fatherNode.insertBefore(新结点对象,参考结点对象)
function changeDom3() {var father = document.getElementById("regForm");var refChild = document.getElementById("brid");var newChild = document.createElement("input");newChild.type = "text";father.insertBefore(newChild, refChild);}<button onclick="changeDom3();">插入子结点对象</button>4)(父结点)替换旧的子结点对象
fatherNode.replaceChild(新结点对象,旧结点对象)
function changeDom4() {var father = document.getElementById("regForm");var refChild = document.getElementById("brid");var newChild = document.createElement("input");newChild.type = "text";father.replaceChild(newChild, refChild);}<button onclick="changeDom4();">替换子结点对象</button>5)(父结点)删除旧子结点对象
function changeDom5() {var father = document.getElementById("regForm");var refChild = document.getElementById("nickid");father.removeChild(refChild);}<button onclick="changeDom5();">删除子结点对象</button>动态改变元素的CSS样式(不重要)
<style type="text/css">.addstyle{color: red;font-size: 72px;text-decoration: underline;}</style><script type="application/javascript">function fontGreater(){var myDiv = document.getElementById("myDiv");console.log(myDiv);myDiv.style.fontSize = "36px";myDiv.style.fontFamily = "宋体";}function changeFont(){var myDiv = document.getElementById("myDiv");myDiv.className = "addstyle";//myDiv.setAttribute("class","addstyle");}</script></head><body><button onclick="fontGreater()">放大字体</button><button onclick="changeFont()">添加样式</button><div id="myDiv" >你好世界!</div></body>以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
大致介绍 jQuery作为JavaScript库,继承并发扬了JavaScript对DOM对象操作的特性,使开发人员能方便的操作DOM对象。jQuery中的D
DOM操作的分类:DOMCORE(核心)、HTML-DOM和CSS-DOM1.DOMCoreDOMCore并不专属于javascript,任何一种支持DOM的程
本文实例讲述了JavaScript中Dom操作。分享给大家供大家参考,具体如下:博主将按照增删改查的方式来介绍一下Dom的主要操作。1、增加节点添加节点的操作主
DOM对象就是Javascript固有的一些对象操作。DOM对象能使用Javascript固有的方法,但是不能使用jQuery里的方法。例如:document.
由于HTML文档被浏览器解析后就是一棵DOM树,要改变HTML的结构,就需要通过JavaScript来操作DOM。始终记住DOM是一个树形结构。操作一个DOM节