当前位置: 代码迷 >> 综合 >> JavaScript学习笔记之DOM操作(上)
  详细解决方案

JavaScript学习笔记之DOM操作(上)

热度:53   发布时间:2024-02-09 08:00:52.0

一. DOM基础
1.定义
HTML DOM即Document Object Model for HTML,通过 DOM,可以访问所有的 HTML 元素,连同它们所包含的文本和属性。可以对其中的内容进行修改和删除,同时也可以创建新的元素。

HTML DOM 独立于平台和编程语言。它可被任何编程语言诸如 Java、JavaScript 和 VBScript 使用。
2.DOM节点

<body><ul id="ul1"><li><span>fjkgh</span></li><li></li></ul>
</body>  //上面代码:li是ul的子节点,body是ul的父节点

*子节点《==========================================》父节点

*children获取子节点                       parentNode获取父节点,offsetParent获取元素用来定位的父级

*首尾节点

firstChild(低版本浏览器)/firstElementChild(高版本浏览器):获取第一个子节点

lastChild(低版本浏览器)/lastElementChild(高版本浏览器):获取第一个子节点

3.操作元素属性

方法一: oTxt.value='dfhgkhda';

方法二: oTxt['value']='jflkjgla';

方法三:Dom方式

获取:getAttirbute(名称)    设置:setAttribute('名称','值')         删除:removeAttribute(名称)


二.DOM操作

1.创建Dom元素

createElement(标签名)创建一个节点

appendChild(节点)追加一个节点

例子:文本输入后,点击按钮久创建一个内容是输入文本的li

<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>js的DOM知识</title><script>window.onload =function(){var ouL = document.getElementById('ul1');var tex = document.getElementById('tex1');var oBtn = document.getElementById('btn1');oBtn.onclick=function(){//添加元素var oLi=document.createElement('li');oLi.innerHTML=tex.value;//父级.appendChild(子节点)ouL.appendChild(oLi);};};</script>
</head>
<body> <input id="tex1" type="text"/><input id="btn1" type="button" value="船舰li"/><ul id="ul1"></ul>
</body>
</html>

2.插入元素

insertBefore(节点,原有节点)

例子:倒序插入

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>js的DOM知识</title><script>window.onload =function(){var ouL = document.getElementById('ul1');var tex = document.getElementById('tex1');var oBtn = document.getElementById('btn1');oBtn.onclick=function(){//添加元素var oLi=document.createElement('li');var aLi=ouL.getElementsByTagName('li');//给li加内容oLi.innerHTML=tex.value;  if(aLi.length>0){//父级.insertBefore(节点,原有节点)---->往前面排ouL.insertBefore(oLi,aLi[0]);}else{//父级.appendChild(子节点)---->往后面排ouL.appendChild(oLi);}};};</script>
</head>
<body> <input id="tex1" type="text"/><input id="btn1" type="button" value="船舰li"/><ul id="ul1"></ul>
</body>
</html>

3.删除元素

父级.removeChild(子节点)删除一个节点

例子:点击a标签删除

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>js的DOM知识</title><script>window.onload =function(){var ouL = document.getElementById('ul1');var oA = document.getElementsByTagName('a');for(var i=0;i<oA.length;i++){oA[i].onclick=function(){ouL.removeChild(this.parentNode);}}};</script>
</head>
<body> <ul id="ul1"><li>hkghkhjfk <a href="javascript:;">删除</a></li><li>hkghkhjfk <a href="javascript:;">删除</a></li><li>hkghkhjfk <a href="javascript:;">删除</a></li><li>hkghkhjfk <a href="javascript:;">删除</a></li><li>hkghkhjfk <a href="javascript:;">删除</a></li></ul>
</body>
</html>

4.文档碎片

文档碎片可以提高DOM操作性能,主要针对低级浏览器,高级浏览器用处不大,

创建文档碎片document.creatDocumentFragment

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>js的DOM知识</title><script>window.onload =function(){var ouL = document.getElementById('ul1');var oFrag=document.createDocumentFragment();for(var i=0;i<1000;i++){var oLi=document.createElement('li');oFrag.appendChild(oLi);}ouL.appendChild(oFrag);};</script>
</head>
<body> <ul id="ul1"></ul>
</body>
</html>

 

  相关解决方案